redis主从复制

1、redis支持简单且易用的主从复制(master-slave replication)功能,该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品。

2、以下是关于redis复制功能的几个重要方面
1)redis使用异步复制。
2)一个主服务器可以有多个从服务器。
3)不仅主服务器可以有从服务器,从服务器也可以有自己的从服务器,多个从服务器之间可以构成一个网状结构
4)复制功能不会阻塞主服务器。
5)复制功能也不会阻塞从服务器。
6)复制功能可以单纯地用于数据冗余(data redundancy),也可以通过让多个从服务器处理只读命令请求来提升扩展性(scalability)。
7)可以通过复制功能来让主服务器免于执行持久化操作。

3、相关配置
1)配置一个从服务器非常简单,只要在配置文件中增加以下的这一行就可以了:

  • slaveof 主服务器IP 端口

2)另外一种方法是调用slaveof命令,输入主服务器的IP和端口,然后同步就会开始:

  • slaveof 主服务器IP 端口

3)启动从服务器,进入客户端,通过info replication命令可以查看redis服务的信息

 此时看到master_link_status值为down,出现这个问题的原因有很多。

  • 首先检查主服务器6379端口有没有对外开放,如果没有需要打开。
  • 还需要编辑一下主服务器的配置文件
  • 默认情况下这个值为yes,是保护模式,如果从机没有密码来访问主机,保护模式会阻止从机访问。先临时改成no
  • 默认是只能这个IP来访问,可以临时注释掉或者改为0.0.0.0对所有IP开放

重启主机redis服务。
此时通过命令查看从服务器状态可以发现master_link_status值为up

4、从服务器只读
1)从redis2.6开始,从服务器支持只读模式,并且该模式为从服务器的默认模式。
2)只读模式由redis.conf文件中的slave-read-only选项控制,也可以通过CONFIG SET命令来开启或关闭这个模式。(不建议)

5、从服务器配置
1)如果主服务器通过requirepass选项设置了密码,那么为了让从服务器的同步操作可以顺利进行,也必须为从服务器进行相应的身份验证设置。
2)config set masterauth <password>或者masterauth <password>

6、主服务器其他配置
1)从redis2.8开始,为了保证数据的安全性,可以通过配置,让主服务器只在有至少N个当前已连接从服务器的情况下,才执行写命令。
2)用户可以通过配置,指定网络延迟的最大值min-slaves-max-lag,以及执行写操作所需的至少从服务器数量min-slaves-to-write。

原文地址:https://www.cnblogs.com/lxhyty/p/11525595.html