redis主从复制

redis主从复制

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中要有独立的进程来完成此操做。

Replication的工做原理:

在Slave启动并链接到Master以后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集全部接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次彻底同步。而Slave服务器在接收到数据库文件数据以后将其存盘并加载到内存中。此后,Master继续将全部已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。redis

若是Master和Slave之间的连接出现断连现象,Slave能够自动重连Master,可是在链接成功以后,一次彻底同步将被自动执行。数据库

redis 安装

redis的安装可参考:服务器

安装redis架构

配置Replication

复制配置文件,并修改slave测试

cp /etc/redis/6379.conf /etc/redis/6380.conf

code

# slaveof <masterip> <masterport>server

改成htm

slaveof 127.0.0.1 6379blog

保存并退出。

测试

启动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
相关文章
相关标签/搜索