Redis Replication的特色和优点。html
- 1). 同一个Master能够同步多个Slaves。
- 2). Slave一样能够接受其它Slaves的链接和同步请求,这样能够有效的分载Master的同步压力。所以咱们能够将Redis的Replication架构视为图结构。
- 3). Master Server是以非阻塞的方式为Slaves提供服务。因此在Master-Slave同步期间,客户端仍然能够提交查询或修改请求。
- 4). Slave Server一样是以非阻塞的方式完成数据同步。在同步期间,若是有客户端提交查询请求,Redis则返回同步以前的数据。
- 5). 为了分载Master的读操做压力,Slave服务器能够为客户端提供只读操做的服务,写服务仍然必须由Master来完成。即使如此,系统的伸缩性仍是获得了很大的提升。
- 6). Master能够将数据保存操做交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操做。
在Slave启动并链接到Master以后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集全部接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次彻底同步。而Slave服务器在接收到数据库文件数据以后将其存盘并加载到内存中。此后,Master继续将全部已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。redis
若是Master和Slave之间的连接出现断连现象,Slave能够自动重连Master,可是在链接成功以后,一次彻底同步将被自动执行。数据库
redis的安装可参考:服务器
安装redis架构
复制配置文件,并修改slave
:测试
cp /etc/redis/6379.conf /etc/redis/6380.conf
将code
# slaveof <masterip> <masterport>
server
改成htm
slaveof 127.0.0.1 6379
blog
保存并退出。
启动master
:/usr/local/bin/redis-server
启动slave
:/usr/local/bin/redis-server /etc/redis/6380.conf
master
中添加相应的key:
[root@localhost redis]# redis-cli 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> set testkey val OK 127.0.0.1:6379> keys * 1) "testkey" 127.0.0.1:6379> set testkey2 val2 OK 127.0.0.1:6379>
slave
中查看是否同步成功:
[root@localhost ~]# redis-cli -p 6380 127.0.0.1:6380> keys * 1) "testkey" 2) "testkey2" 127.0.0.1:6380>
此时能够发现master
中的key
已经成功同步到了slave
。
- 参考文档:http://www.cnblogs.com/stephen-liu74/archive/2012/02/23/2364717.html