环境:
主服务器: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