Skip to content

Redis之主从集群搭建

千里之行,始于足下。

Author:李东阳

1、什么是Redis的主从集群

​ Redis的主从集群是一个”一主多从“的读写分离集群.集群中的Master节点负责客户端的读写请求,而Slave节点负责客户端读请求。之所以要将集群搭建为读写分离模式,主要是因为,对于数据库集群,写操作压力一般较小,读压力更大。所以只有一个节点负责处理写请求操作即可。

2、伪集群搭建与配置

​ 在采用单线程IO模型时,为了提高处理器的利用率,一般会中一个主机上安装多台Redis,构建一个Redis主从伪集群。当然,伪集群的场景主要是学习Redis。

​ 下面要搭建的读写分离伪集群包含一个Master和两个Slave。它们的端口号分别对应的是:6380,6381,6382.

2.1、复制redis.conf文件

​ 在redis安装目录下mkdir一个名称为cluster的目录。然后将redis.conf文件复制一份到该目录下。改文件后面会被其他配置文件包含,所以该文件中需要设置每个Reids节点相同的公共的属性。

2.2、修改redis.conf文件

2.2.1、masterauth

​ 因为我们要搭建主从集群,且每台主机读有可能会是Master,所以最好设置密码验证属性requirepass。如果真需要设置,一定要每个主机的密码都设置为相同的。此时每个配置文件中都要设置两个完全相同的属性:requirepass与msterauth。其中requirepass用于指定当前主机访问密码,而masterauth用于指定当前slave于master时提交的访问密码,用于让master验证自己的身份是否合法。

2.2.2、repl-disable-tcp-nodelay

  1. tcp-nodelay是个什么东西:

​ 我们应该知道,为了降低网络带宽,TCP在进行数据传输时,总是希望发送尽可能的大数据块。所以,TCP中使用了名为Nagle算法。这个算法会数据缓存到一定的大小后在打包发送。

  1. repl-disable-tcp-nodelay参数的配置:

该属性用于设置算法禁用TCP特性tcp-nodelay。设置为yes时则禁用(即将数据缓存到一定大小在发送),此时master于slave间的通信会产生延迟,但是使用的TCP包数量会减小,网络带宽较少。no则反之。注意:当主从级数较多时,建议设置为no,防止数据延迟。

2.3、具体的搭建

参考文章:

http://t.csdnimg.cn/Fjyhw