Redis搭建高可用集群

redis集群至少需要三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用1台机器部署6个redis实例,搭建集群的步骤如下:

一、在redis 目录 创建 redis-cluster 目录

cd /opt/redis-5.0.7;mkdir redis-cluster
cd redis-cluster
mkdir 8001 8002 8003 8004 8005 8006

复制 redis.conf配置文件到8001下
cp . 表示当前目录

cd 8001
cp ../../conf/redis.conf .

编辑 8001 目录的redis.conf 配置问题

# 后台运行
daemonize yes

# 端口
port 8001

#pidfile pid
pidfile /var/run/redis_8001.pid 

# 数据存储位置 dir
dir /opt/redis-5.0.7/redis-cluster/8001/

#开启集群模式 cluster-enabled yes
cluster-enabled yes

# 集群配置信息cluster-config-file nodes-8001.conf
cluster-config-file nodes-8001.conf

#设置节点之前通信超时 配置 cluster-node-timeout 10000
cluster-node-timeout 10000

# bind 127.0.0.1 这个 设置绑定本机IP 或者 设置成 0.0.0.0
bind 0.0.0.0

#关闭保护模式 protected-mode  no
protected-mode  no

# 设置持久化模式
appendonly yes

# redis 登录密码 和集群节点密码(此步骤可以不设置,安全起见还是设置为好)
requirepass admin21262
masterauth admin21262

redis 的集群配置已经设置完成
将 8001 的 redis.conf 复制 到 8002…8006 修改其中的端口即可
vim 批量修改命令(vim命令模式 下操作) 将8001 全部改成 8002

:%s/8001/8002/g

二、启动所有redis 实例
进redis的 bin 目录;依次启动 6个redis实例

./redis-server ../redis-cluster/8001/redis.conf

启动完成 检查 redis 服务状态

ps -ef|grep redis

三、创建集群

进入 redis bin 目录
使用 redis-cli 创建集群

./redis-cli -a admin21262--cluster create --cluster-replicas 1 192.168.217.128:8001 192.168.217.128:8002 192.168.217.128:8003 192.168.217.128:8004 192.168.217.128:8005 192.168.217.128:8006

在 Can I set the above configuration? (type ‘yes’ to accept): yes
输入 yes

 ./redis-cli -a root  --cluster create --cluster-replicas 1 192.168.217.128:8001 192.168.217.128:8002 192.168.217.128:8003 192.168.217.128:8004 192.168.217.128:8005 192.168.217.128:8006
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.217.128:8005 to 192.168.217.128:8001
Adding replica 192.168.217.128:8006 to 192.168.217.128:8002
Adding replica 192.168.217.128:8004 to 192.168.217.128:8003
M: 02d47d69650337ec4a967f5311718939c65d61ee 192.168.217.128:8001
   slots:[0-5460] (5461 slots) master
M: 736fe6711ab1c1abfaace923fa553661bf956c37 192.168.217.128:8002
   slots:[5461-10922] (5462 slots) master
M: 160224afce6c868c653d8e26e0cc5bdaf8da17be 192.168.217.128:8003
   slots:[10923-16383] (5461 slots) master
S: 1e10e6ac6562918ee95480feb7a48e4679c3db62 192.168.217.128:8004
   replicates 160224afce6c868c653d8e26e0cc5bdaf8da17be
S: 7952c769a0adb08753554e8767fdd415ed7a4e43 192.168.217.128:8005
   replicates 02d47d69650337ec4a967f5311718939c65d61ee
S: 0f3e37ec085d26448898129af9388f1a74a2c19e 192.168.217.128:8006
   replicates 736fe6711ab1c1abfaace923fa553661bf956c37
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 192.168.217.128:8001)
M: 02d47d69650337ec4a967f5311718939c65d61ee 192.168.217.128:8001
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 160224afce6c868c653d8e26e0cc5bdaf8da17be 192.168.217.128:8003
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: 0f3e37ec085d26448898129af9388f1a74a2c19e 192.168.217.128:8006
   slots: (0 slots) slave
   replicates 736fe6711ab1c1abfaace923fa553661bf956c37
S: 1e10e6ac6562918ee95480feb7a48e4679c3db62 192.168.217.128:8004
   slots: (0 slots) slave
   replicates 160224afce6c868c653d8e26e0cc5bdaf8da17be
M: 736fe6711ab1c1abfaace923fa553661bf956c37 192.168.217.128:8002
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 7952c769a0adb08753554e8767fdd415ed7a4e43 192.168.217.128:8005
   slots: (0 slots) slave
   replicates 02d47d69650337ec4a967f5311718939c65d61ee
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
上一篇:java – 构建请求时出现Android Retrofit错误


下一篇:Rxjava2 Retrofit2 Android.进行数百次网络通话的最佳方式