Redis主从复制和集群配置
redis主从复制
概述
1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。
2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。
主从复制过程
主从复制过程:见下图
过程:
1:当一个从数据库启动时,会向主数据库发送sync命令,
2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来
3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。
4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。
注意:redis2.8之前的版本:当主从数据库同步的时候从数据库因为网络原因断开重连后会重新执行上述操作,不支持断点续传。
redis2.8之后支持断点续传。
配置
Redis主从结构支持一主多从
主节点:192.168.33.130
从节点:192.168.33.131
注意:所有从节点的配置都一样
方式1:手动修改配置文件
只需要额外修改从节点中redis的配置文件中的slaveof属性即可
slaveof 192.168.33.130 6379
配置修改图示:
配置效果图示:
1、192.168.33.130主机:启动130主节点上面的redis,查看redis的info信息
2、192.168.33.131主机:启动131从节点上面的redis,查看redis的info信息
方式2:动态设置
通过redis-cli 连接到从节点服务器,执行下面命令即可。
slaveof 192.168.33.130 6379
演示结果和手动方式一致。
注意事项
如果你使用主从复制,那么要确保你的master激活了持久化,或者确保它不会在当掉后自动重启。原因:
slave是master的完整备份,因此如果master通过一个空数据集重启,slave也会被清掉。
在配置redis复制功能的时候如果主数据库设置了密码,需要在从数据的配置文件中通过masterauth参数设置主数据库的密码,这样从数据库在连接主数据库时就会自动使用auth命令认证了。相当于做了一个免密码登录。
参考链接https://blog.csdn.net/u011204847/article/details/51307044