环境:

主服务器:192.168.43.12

从服务器:192.168.43.13

一、主从配置

1、将主从redis配置文件redis.conf中的aemonize no 改为 yes

2、修改从redis配置文件redis.conf中的port 6379 改为 6379,添加slaveof 192.168.43.13   6379

3、启动主从服务

      主redis: (路径根据实际情况来写)

      [root@localhost redis]# src/redis-server  /opt/redis-3.0.5/conf/redis.conf

     从redis:

     [root@localhost redis]# src/redis-server /opt/redis-3.0.5/conf/redis.conf

4、测试数据同步
      主redis:

      [root@localhost redis-2.8.3]# src/redis-cli -p 6379
       127.0.0.1:6379> set name abc
       OK
       127.0.0.1:6379> get name
       "abc"
       127.0.0.1:6379>

    从redis:

      [root@localhost redis-2.8.3]# src/redis-cli -p 6379
       127.0.0.1:6379> get name
       "abc"
       127.0.0.1:6379>

5、默认是读写分离的

在从redis:

[root@localhost redis-2.8.3]# src/redis-cli -p 6379
127.0.0.1:6379> set name 123
(error) READONLY You can't write against a read only slave.

 二、主从切换

 1、停止主redis

     [root@localhost redis-3.0.5]# src/redis-cli -n 6379 shutdown
     [root@localhost redis-3.0.5]# src/redis-cli -p 6379
     Could not connect to Redis at 127.0.0.1:6379: Connection refused
     not connected>

 2、将从redis设成主redis
     [root@localhost redis-3.0.5]# src/redis-cli -p 6379 slaveof NO ONE
     OK

 3、测试从redis是否切换从主redis

     [root@localhost redis-3.0.5]# src/redis-cli -p 6379
     127.0.0.1:6379> set name 123
     OK
     127.0.0.1:6379> get name
     "123"
     127.0.0.1:6379>

 4、原来的主redis恢复正常了,要重新切换回去

      1)将现在的主redis的数据进行保存
     [root@localhost redis-3.0.5]# src/redis-cli -p 6379
     127.0.0.1:6379> get name
     "abc"
     127.0.0.1:6379> set name 123
     OK
     127.0.0.1:6379> get name
     "123"
     127.0.0.1:6379> save
     OK
     127.0.0.1:6379> get name
     "123"
     127.0.0.1:6379>

       2)将现在的主redis根目录下dump.rdb文件拷贝覆盖到原来主redis的根目录

       3)启动原来的主redis

      [root@localhost redis-3.0.5]# src/redis-server /soft/redis-3.0.5-master/redis-3.0.5/redis.conf
       4)在现在的主redis中切换

      [root@localhost redis-3.0.5]# src/redis-cli -p 6379 slaveof 192.168.10.1 6379
      OK

注:本文参考https://www.cnblogs.com/fdbk/p/8855100.html

12-16 22:34