Redis主从复制

Redis主从复制

Scroll Down

redis主从复制简单来说

  1. Redis的复制功能是支持多个数据库之间的数据同步,一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库
  2. 通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作

Redis主从复制流程简图

redis5.png

redis主从复制的过程

  1. 当一个从数据库启动时,会向主数据库发送sync命令
  2. 主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来
  3. 当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库
  4. 从数据库收到后,会载入快照文件并执行收到的缓存的命令

server1(master)
部署redis
server2(slave)
新的虚拟机server2作为slave端,为server2也部署redis
server2的配置文件需要修改两个地方

[root@server2 utils]# vim /etc/redis/6379.conf
70 bind 0.0.0.0      #允许任意客户端连接
287 replicaof 172.25.11.1 6379    #从这台主机复制,指向master的ip和端口

修改完成后,重启服务,查看端口

[root@server2 utils]# /etc/init.d/redis_6379 restart
[root@server2 utils]# netstat -antlp

redis6.png

测试

主从复制的测试,server1(master)写入键值对后,在server2(slave)查询,发现server2(slave)主机可以查询,发现数据同步,但不可删除,主从复制成功
redis7.png

redis8.png