在Redis 5中进行Cluster的构建
使用Redis 5来构建集群
我想测试一下在本地环境中使用ElastiCache进行故障转移等验证,但由于缺乏相关的详细资料,所以我将留下备忘录。
环境
操作系统:CentOS 7
主节点:3个
从节点:3个
我们将在1个操作系统上建立一个主服务器和一个从服务器。
因为我尝试创建两个Master时被责备了,所以我改成了三个。
使用ElastiCache的话,本来可以做两个分片的。
前提
-
- firewalldが止まってるか、6379、6380、16379、16380が解放されいる
- selinuxが無効になっている
安装
由于默认的yum存储库中没有Redis 5,因此需要添加epel和remi存储库。
yum -y install epel-release
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
请确认 redis 包的版本。
如果 Version 大于等于 5,则可以。
yum info redis --enablerepo=remi
然后进行安装。
yum -y install redis --enablerepo=remi
设定
为了在服务器上启动两个Redis,我们需要准备两个配置文件。
mkdir -p /opt/redis/6379 /opt/redis/6380
cp -p /etc/redis.conf /opt/redis/6379/
cp -p /etc/redis.conf /opt/redis/6380/
我们将覆盖设置以使其在6380端口上运行。
sed -i 's/6379/6380/g' /opt/redis/6380/redis.conf
将集群模式设置为“On”,并更改监听网络端口。
sed -i 's/# cluster-enabled yes/cluster-enabled yes/g' /opt/redis/6379/redis.conf
sed -i 's/# cluster-enabled yes/cluster-enabled yes/g' /opt/redis/6380/redis.conf
sed -i 's/# cluster-config-file/cluster-config-file/g' /opt/redis/6379/redis.conf
sed -i 's/# cluster-config-file/cluster-config-file/g' /opt/redis/6380/redis.conf
sed -i 's/bind 127.0.0.1/bind {{ listenするIPアドレス }} 127.0.0.1/g' /opt/redis/6379/redis.conf
sed -i 's/bind 127.0.0.1/bind {{ listenするIPアドレス }} 127.0.0.1/g' /opt/redis/6380/redis.conf
如果需要的话,请设置maxmemory。
开启
没有什么特别的要提及的。
如果想要在systemd中控制启动,请参阅其他文章。
redis-server /opt/redis/6379/redis.conf &
redis-server /opt/redis/6380/redis.conf &
构建集群
大师的构建
首先要建立主节点。
在4之前似乎是使用redis-trib.rb来建立的,但是从5开始要使用redis-cli来进行。
redis-cli --cluster create 192.168.10.1:6379 192.168.10.2:6379 192.168.10.3:6379
我可以设置上面的配置吗?(输入“是”来确认)。
当你看到它时,请输入”是”。
确认状态
我們需要確認目前的狀況。如果在 cluster nodes 命令中返回了3行結果,那就代表一切正常。
redis-cli cluster nodes
b4134b8ae3d45099b89e80f723ffbd6f92802e9d 192.168.10.3:6379@16379 master - 0 1548208242137 3 connected 10923-16383
6db9b1aac4d272849300bb48d63ecd95c4c1ec94 192.168.10.2:6379@16379 master - 0 1548208241129 2 connected 5461-10922
237bbdb084091869e837a3ddf90e10f59f31ee64 192.168.10.1:6379@16379 myself,master - 0 1548208240000 1 connected 0-5460
奴隶的注册
接下来,我们要注册一个Slave。这次我们按照以下方式设置。
192.168.10.1:6379 → 192.168.10.2:6380
192.168.10.2:6379 → 192.168.10.3:6380
192.168.10.3:6379 → 192.168.10.1:6380
192.168.10.1:6379 → 192.168.10.2:6380
192.168.10.2:6379 → 192.168.10.3:6380
192.168.10.3:6379 → 192.168.10.1:6380
redis-cli --cluster add-node 192.168.10.2:6380 192.168.10.1:6379 --cluster-slave
redis-cli --cluster add-node 192.168.10.3:6380 192.168.10.2:6379 --cluster-slave
redis-cli --cluster add-node 192.168.10.1:6380 192.168.10.3:6379 --cluster-slave
确认状态
再次确认集群的状态。
redis-cli cluster nodes
237bbdb084091869e837a3ddf90e10f59f31ee64 192.168.10.1:6379@16379 master - 0 1548208917915 1 connected 0-5460
f0255000fa18959cb273e1a1555eb84884e261e9 192.168.10.3:6380@16380 slave 6db9b1aac4d272849300bb48d63ecd95c4c1ec94 0 1548208918921 2 connected
b4134b8ae3d45099b89e80f723ffbd6f92802e9d 192.168.10.3:6379@16379 master - 0 1548208916000 3 connected 10923-16383
6ff367f62dc46a07a8030c2985e1fbcb9f899c68 192.168.10.2:6380@16380 slave 237bbdb084091869e837a3ddf90e10f59f31ee64 0 1548208918000 1 connected
763bff12eea4ca5c821a6a5b9eeafdf8f44bf5b0 192.168.10.1:6380@16380 slave b4134b8ae3d45099b89e80f723ffbd6f92802e9d 0 1548208917000 3 connected
6db9b1aac4d272849300bb48d63ecd95c4c1ec94 192.168.10.2:6379@16379 myself,master - 0 1548208918000 2 connected 5461-10922