Redis主从复制
主库:192.168.138.20 6379
从库:192.168.138.20 6380
配置:
1、从库redis-6380.conf配置文件中加入如下两行配置信息:
slaveof 192.168.138.20 6379 # 主库ip + 端口
masterauth 123456 # 主库 redis 验证密码
2、启动从库redis
[root@ansible redis-6380]# ./bin/redis-server ./redis-6380.conf [root@ansible redis-6380]# ps -ef|grep redis root 9794 9493 0 18:42 pts/0 00:00:00 ./bin/redis-cli -a 123456 root 19696 1 0 22:03 ? 00:00:21 ./bin/redis-server 0.0.0.0:6379 root 19716 17763 0 22:03 pts/2 00:00:00 ./bin/redis-cli -a 123456 root 23312 1 0 23:16 ? 00:00:01 ./bin/redis-server 0.0.0.0:6380 root 23721 17791 0 23:24 pts/3 00:00:00 grep --color=auto redis 3 、登录从库redis # -p 指定端口 # -a 指定验证参数 [root@ansible redis-6380]# ./bin/redis-cli -p 6380 -a 123456 127.0.0.1:6380> ping PONG 4、查看从库状态 127.0.0.1:6380> info replication # Replication role:slave master_host:127.0.0.1 master_port:6379 master_link_status:up master_last_io_seconds_ago:5 master_sync_in_progress:0 slave_repl_offset:938 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:d056c9e33dffa78a64abac37a4900ac73ed0e767 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:938 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:938 127.0.0.1:6380> 5、登录主库 设置字符串信息,在从库查看是否同步 # 主库 127.0.0.1:6379> set java 1 OK # 从库 127.0.0.1:6380> get java "1" 通过上面的案例可以证明主从库数据同步了 6、当要取消主从复制关系时,可以在从库执行如下命令 slaveof no one 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。 利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。 127.0.0.1:6380> slaveof no one OK 127.0.0.1:6380> info replication # Replication role:master connected_slaves:0 master_replid:3e3d446f51c00c103f711ed519c7b842713b56cb master_replid2:d056c9e33dffa78a64abac37a4900ac73ed0e767 master_repl_offset:1439 second_repl_offset:1440 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:1439 再次查看从库角色信息发现,role由slave变为master