Fork me on GitHub
Suzf  Blog

Redis 主从复制

Redis 安装见 Redis Setup

环境
CentOS 6.x
Redis=3.0.7

master01
port 1111
192.168.9.10/24

ocean-lab
port 2222
192.168.9.70/24

主从复制
1.为什么使用,好处?
1.1 单个redis服务器压力过大,可考虑,master写,slave读,分散缓解服务器压力。
1.2 一个master可以拥有多个slave,而一个slave又可以拥有多个slave

2.主从复制过程
2.1 master、slave 建立连接且slave 向master 发起同步请求
2.2 请求成功之后 slave 接受master发送过来的dump.rdb的快照文件
2.3 slave载入dump.rdb文件
2.4 当master和slave的连接断开时slave可以自动重新建立连接。如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。

redis_replication

主从配置
配置 Master-Slave,只需要在 Slave 上配置 Master 节点IP Port:
# slaveof <masterip> <masterport>
# Since Redis 2.6 by default slaves are read-only - slave-read-only yes

[16:44:26][[email protected] ~]$ echo "slaveof  192.168.9.10 1111" >> /etc/redis/2222.conf
[16:44:40][[email protected] ~]$ /etc/init.d/redis_2222 restart

测试
^_^[16:52:22][[email protected] ~]#redis-cli -h 192.168.9.70 -p 2222 ping
PONG
^_^[16:56:39][[email protected] ~]#redis-cli -h 192.168.9.10 -p 1111 ping
PONG

验证

在master 上查看当前有多少key
^_^[16:52:10][[email protected] ~]#redis-cli -p 1111 get name
"suzf.net"
^_^[16:56:57][[email protected] ~]#redis-cli -h 192.168.9.10 -p 1111 keys \*
1) "name"

在master上添加一个key
^_^[16:59:54][[email protected] ~]#redis-cli -h 192.168.9.10 -p 1111 set homepage suzf.net
OK

然后在slave上面查看
^_^[17:02:19][[email protected] ~]#redis-cli -h 192.168.9.70 -p 2222 keys \*
1) "name"
2) "homepage"
^_^[17:02:59][[email protected] ~]#redis-cli -h 192.168.9.10 -p 1111 get homepage
"suzf.net"