Redis 主从模式详解

Redis主从模式

不管任何程序,只运行一个实例都是不可靠的,一旦因为网络原因导致所在机器不可达,或者所在服务器挂掉,那么这个程序将不能对外提供服务了,Redis也是一样的。同时,将数据完全存储在单个redis中也会存在数据备份和数据量较大造成性能降低的问题。Redis的一个激动人心的功能是可伸缩性,它采用主从复制的方式提供高度可靠性。Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。主机和从机的数据完全一致,主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取,也就是说,客户端可以将数据写入到主机,由主机自动将数据的写入操作同步到从机。主从模式很好的解决了数据备份问题,并且由于主从服务数据几乎是一致的,因而可以将写入数据的命令发送给主机执行,而读取数据的命令发送给不同的从机执行,从而达到读写分离的目的。

Redis主从模式的注意点

  • 默认配置下,master节点可以进行读和写,slave节点只能进行读操作,写操作被禁止
  • 不要修改配置让slave节点支持写操作,没有意义,因为,首先写入的数据不会被同步到其他节点,其次,当master节点修改同一条数据后,slave节点的数据会被覆盖掉
  • master节点挂了以后,redis就不会对外提供写服务了,因为剩下的slave节点不会成为master
  • master节点挂了以后,不影响slave节点的读,master节点启动后Redis将重新对外提供写服务。
  • slave节点挂了不影响其他slave节点的读和master节点的读和写,重新启动后会将数据从master节点同步过来

对有密码的情况说明,当master节点设置密码时:

* 客户端访问master需要密码;

* 启动slave需要密码,在配置中进行配置即可;

* 客户端访问slave不需要密码

Redis主从模式搭建

主从模式的搭建还是很简单的,官网的介绍就更加简单了,只需要在配置文件中加上一行配置:

slaveof 192.168.1.1 6379

指明master的ip和端口号就可以了,实际上真的这么简单。redis主从模式的配置可以理解为多个不同的redis实例通过一定的配置告知其相互之间的主从关系。主从模式的配置主要的配置点有两个:当前实例端口号和当前实例是主机还是从机,是从机的话其主机的ip和端口是什么。

我们拿上面安装好的一个Redis作为master,然后再用一个linux系统克隆一份作为slave,并修改其IP为172.24.4.184。

修改slave的redis.conf配置文件:

slaveof 172.24.4.183 6379  (映射到主服务器上)

也可以通过redis-cli 连接到从节点服务器,执行下面命令:

slaveof 172.24.4.183 6379 

如果master设置了验证密码,还需配置masterauth。

这里可能会遇到一点问题:

Error reply to PING from master: ‘-DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients.

是说处于保护模式,只能本地链接,我们需要修改配置文件redis.conf

解决方法很简单,给主机配置密码

将# requirepass foobared取消注释,修改密码

或者设置 protected-mode no,也可通过命令config set protected-mode no

配置完之后启动slave的Redis服务,OK,主从配置完成。下面测试一下:

在master和slave分别执行info命令,查看结果如下:

master:

slave:

配置就是这样,更多的细节没有一一列举,有问题还请多多指正

参考:

https://www.cnblogs.com/yiwangzhibujian/p/7053845.html

https://blog.csdn.net/xiaoxiaoyusheng2012/article/details/82056056

https://www.cnblogs.com/cmyxn/p/9414457.html

猜你喜欢

转载自blog.csdn.net/xuemengrui12/article/details/83963120