redis主从

发布时间:2017-11-10 19:51:39编辑:admin阅读(3873)

    环境介绍
    master 192.168.1.28 centos 6.4 x64位系统
    slave  192.168.1.80 centos 6.4 x64位系统

    ##############################################
    2台服务器都安装redis
    安装redis组件tcl
    tar zxvf tcl8.6.0-src.tar.gz -C /usr/src/
    cd /usr/src/tcl8.6.0/unix
    ./configure
    make && make install


    安装redis
    tar zxvf redis-2.8.19.tar.gz -C /usr/src/
    cd /usr/src/redis-2.8.19/
    make PREFIX=/redis install

    vi /etc/profile

    PATH=$PATH:/redis/bin

    source /etc/profile

    cd /redis
    mkdir log
    mkdir data
    mkdir conf
    cp /usr/src/redis-2.8.19/redis.conf conf/redis-6379.conf
    vi conf/redis-6379.conf

    pid文件位置
    41 pidfile /var/run/redis-6379.pid
    客户端连接的超时时间,单位为秒,超时后会关闭连接
    74 timeout 50
    日志记录等级,4个可选值
    98 loglevel warning
    日志文件位置
    103 logfile /redis/log/redis-6379.log
    注释掉以下3行
    142 #save 900 1
    143 #save 300 10
    144 #save 60 10000
    设置 Redis 数据保存到disk的策略。save ""表示关闭策略,非常消耗I/O
    145 save ""
    镜像备份文件的文件名
    177 dbfilename dump-6379.rdb
    数据库镜像备份的文件放置的路径
    187 dir /redis/data/
    禁用disk-based(基于硬盘),使用diskless,基于socket,使用网络传输
    272 repl-diskless-sync no
    当收到第一个请求时,等待多个slave一起来请求之间的间隔时间。
    284 repl-diskless-sync-delay 5
    设置redis能够使用的最大内存,清除已到期或即将到期的Key
    449 maxmemory 300mb
    开启数据持久化
    appendonly yes

    启动redis
    redis-server /redis/conf/redis-6379.conf &
    查看端口
    netstat -anpt | grep redis
    ######################################################
    slave服务器修改配置文件
    vi /redis/conf/redis-6379.conf
    在以下位置添加一行
    # slaveof <masterip> <masterport>
    slaveof 192.168.1.28 6379

    重启redis
    pkill redis-server
    redis-server /redis/conf/redis-6379.conf &

    查看端口
    netstat -anpt | grep redis

    在master主机写入key
    [root@localhost redis]# redis-cli
    127.0.0.1:6379> set name aa
    OK
    127.0.0.1:6379> keys *
    1) "name"

    在slave主机查看key
    [root@localhost conf]# redis-cli
    127.0.0.1:6379> keys *
    1) "name"

    2边的key一样,说明正常。
    关于redis持久化问题,上面的配置好了持久化。
    如果重启redis,数据会丢失。
    测试重启,再次进入,发现数据是空的
    [root@localhost redis]# redis-cli
    127.0.0.1:6379> keys *
    (empty list or set)

    再次写入keys,使用save保存
    [root@localhost redis]# redis-cli
    127.0.0.1:6379> keys *
    (empty list or set)
    127.0.0.1:6379> set pass b
    OK
    127.0.0.1:6379> keys *
    1) "pass"
    127.0.0.1:6379> save
    OK
    127.0.0.1:6379> exit
    重启redis
    [root@localhost redis]# pkill redis-server
    [root@localhost redis]# redis-server /redis/conf/redis-6379.conf &
    [4] 23642
    [3]   Done                    redis-server /redis/conf/redis-6379.conf
    重新进入redis,查看key,发现key还在。
    [root@localhost redis]# redis-cli
    127.0.0.1:6379> keys *
    1) "pass"

关键字