Redis

Summary: Author: 张亚飞 | 阅读时间: 1 minute read | Published: 2016-08-12
Filed under Categories: LinuxTags: Note,

Redis 主从同步配置

Redis的安装,但是在生产环境中,没有人使用一台 Redis 服务器,至少也得是个主从架构,配置Redis主从其实很简单.

Redis主从环境介绍

Redis 主: 43.241.222.110
Redis 从: 47.90.15.40
  1. Redis 工作原理

无论是初次连接还是重新连接,当建立一个从服务器时,从服务器都将向主服务器发送一个 SYNC 命令,接到 SYNC 命令的主服务器将开始执行 BGSAVE ,并在保存操作执行期间,将所有新执行的写入命令都保存到一个缓冲区里面.当 BGSAVE 执行完毕后,主服务器将执行保存操作所得的 .rdb 文件发送给从服务器,从服务器接收这个 .rdb 文件,并将文件中的数据载入到内存中.之后主服务器会以 Redis 命令协议的格式,将写命令缓冲区中积累的所有内容都发送给从服务器.如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,在 Redis 2.8 版本之前,断线之后重连的从服务器总要执行一次完整重同步(full resynchronization)操作,但是从 Redis 2.8 版本开始,从服务器可以根据主服务器的情况来选择执行完整重同步还是部分重同步(partial resynchronization).

  1. Redis的主从复制的特点

同一个Master可以同步多个Slaves. Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力.因此我们可以将Redis的Replication架构视为图结构. Master Server是以非阻塞的方式为Slaves提供服务.所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求. Slave Server同样是以非阻塞的方式完成数据同步.在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据. 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成.即便如此,系统的伸缩性还是得到了很大的提高. Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作.

Redis 使用异步复制.从 Redis 2.8 开始,从服务器会以每秒一次的频率向主服务器报告复制流(replication stream)的处理进度.

  1. Redis服务的安装

请点击 Redis 基础安装

  1. 主从配置

Redis 主服务器 [43.241.222.110] 配置 /etc/redis/6379.conf

protected-mode no
#bind 127.0.0.1
#slaveof x.x.x.x xxxx
#slave-priority 100

Redis 从服务器 [45.32.80.56] 配置 /etc/redis/6379.conf

protected-mode yes
bind 127.0.0.1
slaveof 43.241.222.110 6379
slave-priority 100

分别重启 Redis 主从服务器

sudo service redis_6379 restart

以下测试部分,可不理会

4.2. 启动从redis服务

* [root@tshare365-slave redis-2.8.19]# redis-server  /etc/redis.conf 
* [root@tshare365-slaveredis-2.8.19]# redis-cli -h 47.90.15.40
  1. 主从同步测试

5.1. 主redis启动并写入数据

* [root@tshare365-master redis-2.8.19]# redis-server  /etc/redis.conf 
* [root@tshare365-master redis-2.8.19]# redis-cli  -h 43.241.222.110
43.241.222.110:6379> set a 1
OK
43.241.222.110:6379> get a
"1"
43.241.222.110:6379>

5.2. 从Redis查看数据是否同步过来

* [root@tshare365-slave redis-2.8.19]# redis-cli -h 47.90.15.40
47.90.15.40:6379> get a
"1"
47.90.15.40:6379>

Redis的主从复制就到此结束了


参考

Comments

Cor-Ethan, the beverage → www.iirii.com