redis集群搭建

redis集群主从搭建

环境:2台服务器
计划:3主,3从(7001,7002,7003为主)(7004,7005,7006为从)

1.安装redis
yum install redis

2.安装ruby环境
yum -y install ruby
yum -y install rubygems
gem install redis-3.0.0.gem
cp redis-trib.rb /usr/local/redis/bin/

3.在主服务器上创建目录并复制文件
mkdir -p /usr/local/redis-cluster/{7001,7002,7003}
cp /usr/local/redis/conf/redis.conf /usr/local/redis-cluster/7001/
cp /usr/local/redis/conf/redis.conf /usr/local/redis-cluster/7002/
cp /usr/local/redis/conf/redis.conf /usr/local/redis-cluster/7003/

4.修改配置文件可以在文件末尾添加如下内容
vim /usr/local/redis-cluster/7001/redis.conf
bind 172.17.18.198
port 7001
pidfile /var/run/redis_7001.pid
logfile "/data/logs/redis/redis_7001.log"
dir /usr/local/redis-cluster/7001
cluster-enabled yes
cluster-config-file /usr/local/redis-cluster/7004/nodes-7001.conf
依次修改7002,7003

5.启动redis
cd /usr/local/redis/bin
./redis-server /usr/local/redis-cluster/7001/redis.conf
./redis-server /usr/local/redis-cluster/7002/redis.conf
./redis-server /usr/local/redis-cluster/7003/redis.conf
使用ps -ef | grep redis 查看redis是否正常启动 (如下为正常)
root 28712 1 0 20:30 ? 00:00:05 ./redis-server 172.17.18.197:7001 [cluster]
root 28716 1 0 20:30 ? 00:00:04 ./redis-server 172.17.18.197:7002 [cluster]
root 28720 1 0 20:30 ? 00:00:04 ./redis-server 172.17.18.197:7003 [cluster]

6.在从服务器上创建目录并复制文件
mkdir -p /usr/local/redis-cluster/{7004,7005,7006}
cp /usr/local/redis/conf/redis.conf /usr/local/redis-cluster/7004/
cp /usr/local/redis/conf/redis.conf /usr/local/redis-cluster/7005/
cp /usr/local/redis/conf/redis.conf /usr/local/redis-cluster/7006/

7.修改配置文件同主服务器配置

8.启动redis
cd /usr/local/redis/bin
./redis-server /usr/local/redis-cluster/7004/redis.conf
./redis-server /usr/local/redis-cluster/7005/redis.conf
./redis-server /usr/local/redis-cluster/7006/redis.conf

9.创建集群+从节点(方案一)
./redis-trib.rb create 172.17.18.197:7001 172.17.18.197:7002 172.17.18.197:7003
格式:一主一从
./redis-trib.rb create --replicas 1 192.168.95.49:6379 192.168.95.169:6379 192.168.95.51:6379 192.168.95.169:6380 192.168.95.51:6380 192.168.95.49:6380
注:上面主从创建的时候,理论上是把给定的服务器分成两组,然后按顺序绑定主、从关系,为了更加精确控制主从关系,可以使用下面的方案

10.创建不带slave的集群(方案二)
./redis-trib.rb create 172.17.18.197:7001 172.17.18.197:7002 172.17.18.197:7003
输出如下信息:

Creating cluster
Performing hash slots allocation on 3 nodes...
Using 3 masters:
172.17.18.197:7001
172.17.18.197:7002
172.17.18.197:7003
M: 326040046835cf41180dc4764225d60758027774 172.17.18.197:7001
slots:0-5460 (5461 slots) master
M: 510d231a67cc3bda8cab2ca9d904d5bcc16dc32c 172.17.18.197:7002
slots:5461-10922 (5462 slots) master
M: 65d9e31ccd062d18d92a6c8b3be12e5abf641265 172.17.18.197:7003
slots:10923-16383 (5461 slots) master
Can I set the above configuration? (type 'yes' to accept): yes
Nodes configuration updated
Assign a different config epoch to each node
Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
Performing Cluster Check (using node 172.17.18.197:7001)
M: 326040046835cf41180dc4764225d60758027774 172.17.18.197:7001
slots:0-5460 (5461 slots) master
0 additional replica(s)
M: 65d9e31ccd062d18d92a6c8b3be12e5abf641265 172.17.18.197:7003
slots:10923-16383 (5461 slots) master
0 additional replica(s)
M: 510d231a67cc3bda8cab2ca9d904d5bcc16dc32c 172.17.18.197:7002
slots:5461-10922 (5462 slots) master
0 additional replica(s)
[OK] All nodes agree about slots configuration.
Check for open slots...
Check slots coverage...
[OK] All 16384 slots covered.

11.添加从节点
格式:master-id 从节点ip:端口 主节点ip:端口
./redis-trib.rb add-node --slave --master-id 326040046835cf41180dc4764225d60758027774 172.17.18.198:7004 172.17.18.197:7001

12.依次添加从节点

13.删除节点
因为主节点含有槽数,所以,首先要把节点中的哈希槽转移到其他节点中,执行命令
./redis-trib.rb reshard ip+端口
(What is the receiving node ID? 接收哈希槽的matser节点)
(Source node #1:master-id 要删除的节点的master-id)
./redis-trib.rb del-node ip+端口 master-id
(如添加节点失败,可以去删除nodes-7001.conf试试)

14.查看节点
./redis-cli -h ip -p 端口
进入后输入 cluster nodes


标题:redis集群搭建
作者:LeeOcean
地址:https://www.leiocean.com/articles/2019/09/01/1567312710214.html

    评论
    0 评论
avatar

取消