一、Redis 主从复制作用
作用:保证Redis的数据安全,提升应用服务高可用
二、网络环境
三、在从服务器设置同步
1、查看从Redis 服务器上现有的数据
[root@web01 redis]# ./redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
2、查看主Redis 服务器上现有的数据
[root@web02 redis]# ./redis-cli
127.0.0.1:6379> keys *
1) "5"
2) "12"
3) "3"
4) "2"
5) "7"
6) "9"
7) "1"
8) "4"
9) "10"
10) "6"
11) "8"
127.0.0.1:6379>
3、此时我们在从库中配置与主库同步
[root@web01 redis]# service redis stop
Stopping ...
Redis stopped
[root@web01 redis]# vi redis.conf
4、启动从库,并查看是否把主库的信息同步过来
[root@web01 redis]# service redis start
Starting Redis server...
[root@web01 redis]# ./redis-cli
127.0.0.1:6379> keys *
1) "5"
2) "4"
3) "10"
4) "7"
5) "3"
6) "8"
7) "9"
8) "6"
9) "1"
10) "12"
11) "2"
127.0.0.1:6379>
5、在主库上添加一个新key,并同时查看从库是否同步成功。
二、如何把从库设置为主库
1、当主库发生故障时,我们需要把从库设置为主库,否则无法改或添加新的KEY
127.0.0.1:6379> set 14 aaaaaa
(error) READONLY You can't write against a read only slave.
2、把从库设置为主库
127.0.0.1:6379> set 14 aaaaaa #当还是从库的时候,只能进行读,不能写
(error) READONLY You can't write against a read only slave. #提示错误
127.0.0.1:6379> slaveof NO ONE #当主库故障时,可在从库运行以下命令,进行权限提升为主库
OK
127.0.0.1:6379> set test aa
OK
127.0.0.1:6379>
备注:提升为主库后,记得要把从库的配置文件slaveof 禁用注释
三、关于Redis的高可用自动切换思路
个人方案:使用Keepalived + Redis 主从配置的方法,使用Keepalived持载虚拟IP到主库上,同时添加Redis的守护进程,判断主库的Redis是否工作正常,如不正常,把Keepalived停止,同时漂移VIP到从库上,在从库的上的操作就是,添加一个守护进程,检查VIP是否在本机,如在本机,把从库提升为主库,或此步骤可手工操作,通过ZABBIX监控,发生故障时,手工立刻把从库提升为主库。