redis安装配置

来源:互联网 发布:淘宝网连衣裙夏装 编辑:程序博客网 时间:2024/04/29 11:27
redis
==============================================================
一:安装


    官网下载地址:http://redis.io/download


    ~]# yum -y install gcc
    ~]# cd src
    ~]# make
        # make MALLOC=libc   解决部分错误使用。
    <!-- ~]# make install -->


    配置文件:源码根目录
    ~]# mkdir /etc/redis/
    ~]# cp redis.conf /etc/redis/


二:配置
    ~]# ls /usr/local/bin/
        redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server


pidfile /var/run/redis_6379.pid
redis-server


~]# vim /etc/redis/redis.conf
监听端口和地址
#bind 127.0.0.1


# yes 是在后台运行
# daemonize no
daemonize yes


# cluster-enabled yes
cluster-enabled yes


# cluster-config-file nodes-6379.conf
cluster-config-file nodes-6379.conf


# cluster-node-timeout 15000
cluster-node-timeout 15


启动服务:
~]#  redis-server /etc/redis/redis.conf




~]# redis-cli
cluster nodes  命令用于查看当前Redis节点所属的Redis集群中的所有节点,
cluster info    则用于查看当前Redis节点所属的Redis集群的整体状
cluster meet    将当前节点主动添加节点
cluster addslots
cluster delslots
cluster setslot
[root@localhost redis]# redis-cli
127.0.0.1:6379> cluster nodes
    5be8eec2cee607d14ee5cd6f24ee296365d49ec9 :6379 myself,master - 0 0 0 connected


127.0.0.1:6379> cluster info
    cluster_state:fail
    cluster_slots_assigned:0
    cluster_slots_ok:0
    cluster_slots_pfail:0
    cluster_slots_fail:0
    cluster_known_nodes:1
    cluster_size:0
    cluster_current_epoch:0
    cluster_my_epoch:0
    cluster_stats_messages_sent:0
    cluster_stats_messages_received:0


127.0.0.1:6379> cluster meet 172.18.21.61 6379
    OK


127.0.0.1:6379> cluster nodes
    bf030d5a9570b66c41a38bdfb89b36e6cf654e58 172.18.21.61:6379 master - 0 1466854370204 0 connected
    5be8eec2cee607d14ee5cd6f24ee296365d49ec9 172.18.21.60:6379 myself,master - 0 0 1 connected


[root@localhost redis]# cat /etc/redis/nodes-6379.conf 
    bf030d5a9570b66c41a38bdfb89b36e6cf654e58 172.18.21.61:6379 master - 0 1466854584926 0 connected
    5be8eec2cee607d14ee5cd6f24ee296365d49ec9 172.18.21.60:6379 myself,master - 0 0 1 connected
    vars currentEpoch 1 lastVoteEpoch 0
















http://blog.sina.com.cn/s/blog_48c95a190101dhe9.html


kill -9 `cat /var/run/redis_6379.pid`
启动
redis-server /etc/redis/redis.conf




#主服务器
redis-cli -p 6379 set hello world


#从服务器
redis-cli -p 6379 get hello
"world"


#主服务器
redis-cli -p 6379 set hello world2


#从服务器
redis-cli -p 6379 get hello
"world2"
redis-cli -p 6379 set hello world
(error) READONLY You can't 








yum -y install ruby rubygems








pkgs.org
yum localinstall
backlog 等待队列


事务:
muti exec 






jenkins 监控


@connection
auth
echo
ping
quit
select




glient 
config
config resetstat
config set
config rewrite
dbsize




help info
info memory


lastsave
monitor


shutdown
slaveof
slowlog
sync
time


订阅与发布:
subscribe
subscribe news
publish news hello
psubscribe:模式订阅


持久化:
    rdb和aof
    rdb:snapshot,二进制格式,事先定制策略,周期性的保存至磁盘,数据文件默认为dump.rdb
            客户端可显示使用save或bgsave命令自动执行保存机制。
            save(同步):在主线程中保存快照,此时会阻塞所有客户端请求。
            bgsave(异步):


    aof:append only file:合并重写aof文件,
        记录每一次写操作至指定的文件尾部实现持久化。当redis重启时,可通过重新执行文件的命令在内存重建数据库,
        不会读取正在使用的aof文件,而通过将内存中的数据以命令的方式保存到临时文件中,完成之后替换原来的aof文件。


    bgsave bgrewriteaof 不会同时执行,
    恢复数据时优先使用aof


    复制:
        特点:
            一个master可以有多个slave
            支持链式复制
            master以非阻塞方式同步数据至slave






slaveof 172.18.21.60 6379 指明主库


列出所有key
keys *


config get slaveof






主服务器使用认证,从服务器要使用 masterauth password 才能正常进行主从复制。


    sentinel:用于管理多个redis服务器实现ha
        监控
        通知
        自动化故障迁移


        程序:
            redis-sentinel /path/to/file.conf
            redis-server /path/to/file.conf  --sentinal












/*
redis 使用
查看所有key
~]# keys *


切换数据库
~]#  select 1


删除当前数据库中的所有Key  
~]# flushdb  


删除所有数据库中的key  
~]# flushall  


删除某个key
~]# del key
*/


















--------------------------------file start---------------------------------------------
#!/usr/bin/env bash
#
# redis start up the redis server daemon
#
# chkconfig: 345 99 99
# description: redis service in /etc/init.d/redis \
#             chkconfig --add redis or chkconfig --list redis \
#             service redis start  or  service redis stop
# processname: redis-server
# config: /etc/redis.conf


PATH=/usr/local/bin:/sbin:/usr/bin:/bin


REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli


PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf"
#make sure some dir exist
if [ ! -d /var/lib/redis ] ;then
    mkdir -p /var/lib/redis
    mkdir -p /var/log/redis
fi


case "$1" in
    status)
        ps -A|grep redis
        ;;
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        if [ "$?"="0" ]
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac
--------------------------------file end---------------------------------------------
0 0