CentOS 单机安装Redis Cluster6.0.9(3主3从伪集群)

1.为了节省机器,我们直接把6个Redis实例安装在同一台机器上(3主3从),只是使用不同的端口号。
机器IP 192.168.181.135
可以跟单机的redis安装在同一台机器上,因为数据目录不同,没有影响。
2.创建6个目录,分别存储三主三从文件
cd /usr/local/redis
mkdir redis-cluster
cd redis-cluster
mkdir 7291 7292 7293 7294 7295 7296

3.复制redis配置文件到7291目录
cp /usr/local/redis/redis.conf /usr/local/redis/redis-cluster/7291
4.修改7291的redis.conf配置文件,内容:
cd /usr/local/redis/redis-cluster/7291

redis.conf
vim redis.conf
内容如下:

port 7291
daemonize yes
protected-mode no
dir /usr/local/redis/redis-cluster/7291/
cluster-enabled yes
cluster-config-file nodes-7291.conf
cluster-node-timeout 5000
appendonly yes
pidfile /var/run/redis_7291.pid

5.把7291下的redis.conf复制到其他5个目录。

cd /usr/local/redis/redis-cluster/7291
cp redis.conf …/7292
cp redis.conf …/7293
cp redis.conf …/7294
cp redis.conf …/7295
cp redis.conf …/7296

6.批量替换内容

cd /usr/local/redis/redis-cluster
sed -i ‘s/7291/7292/g’ 7292/redis.conf
sed -i ‘s/7291/7293/g’ 7293/redis.conf
sed -i ‘s/7291/7294/g’ 7294/redis.conf
sed -i ‘s/7291/7295/g’ 7295/redis.conf
sed -i ‘s/7291/7296/g’ 7296/redis.conf

7.分别启动6个Redis节点

cd /usr/local/redis/
./src/redis-server redis-cluster/7291/redis.conf
./src/redis-server redis-cluster/7292/redis.conf
./src/redis-server redis-cluster/7293/redis.conf
./src/redis-server redis-cluster/7294/redis.conf
./src/redis-server redis-cluster/7295/redis.conf
./src/redis-server redis-cluster/7296/redis.conf
8.判断是否启动了6个进程
ps -ef|grep redis

9.创建集群

注意用绝对IP,不要用127.0.0.1

cd /usr/local/redis/src/
redis-cli --cluster create 192.168.181.135:7291 192.168.181.135:7292 192.168.181.135:7293 192.168.181.135:7294 192.168.181.135:7295 192.168.181.135:7296 --cluster-replicas 1
Redis会给出一个预计的方案,对6个节点分配3主3从,如果认为没有问题,输入yes确认

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.181.135:7295 to 192.168.181.135:7291
Adding replica 192.168.181.135:7296 to 192.168.181.135:7292
Adding replica 192.168.181.135:7294 to 192.168.181.135:7293

Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 2058bd8fc0def0abe746816221c5b87f616e78ae 192.168.181.135:7291
slots:[0-5460] (5461 slots) master
M: 4e41266f2fb7944420d66235475318f5f9526cd8 192.168.181.135:7292
slots:[5461-10922] (5462 slots) master
M: 9ff8ac86b5faf3c0eca149f090800efea3b142e0 192.168.181.135:7293
slots:[10923-16383] (5461 slots) master
S: 8383088d3ce75732fc9acb31ca4bce68833028f7 192.168.181.135:7294
replicates 9ff8ac86b5faf3c0eca149f090800efea3b142e0
S: d185adbfa62133e30cee291b028eff451502ecca 192.168.181.135:7295
replicates 2058bd8fc0def0abe746816221c5b87f616e78ae
S: 634709cf14809976ea40b65615f816e31d424748 192.168.181.135:7296
replicates 4e41266f2fb7944420d66235475318f5f9526cd8
Can I set the above configuration? (type ‘yes’ to accept):
注意看slot的分布:

7291 [0-5460] (5461个槽)
7292 [5461-10922] (5462个槽)
7293 [10923-16383] (5461个槽)
输入yes确认,集群创建完成

Performing Cluster Check (using node 192.168.181.135:7291)
M: 2058bd8fc0def0abe746816221c5b87f616e78ae 192.168.181.135:7291
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 8383088d3ce75732fc9acb31ca4bce68833028f7 192.168.181.135:7294
slots: (0 slots) slave
replicates 9ff8ac86b5faf3c0eca149f090800efea3b142e0
S: d185adbfa62133e30cee291b028eff451502ecca 192.168.181.135:7295
slots: (0 slots) slave
replicates 2058bd8fc0def0abe746816221c5b87f616e78ae
M: 9ff8ac86b5faf3c0eca149f090800efea3b142e0 192.168.181.135:7293
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: 4e41266f2fb7944420d66235475318f5f9526cd8 192.168.181.135:7292
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 634709cf14809976ea40b65615f816e31d424748 192.168.181.135:7296
slots: (0 slots) slave
replicates 4e41266f2fb7944420d66235475318f5f9526cd8
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.
重置集群的方式是在每个节点上个执行cluster reset,然后重新创建集群

10.批量写入值,创建一个sh脚本文件

cd /usr/local/redis/redis-cluster/
vim setkey.sh
脚本内容如下:

#!/bin/bash
for ((i=0;i<20000;i++))
do
echo -en “helloworld” | redis-cli -h 192.168.181.135 -p 7291 -c -x set name$i >>redis.log
done

11:授权 chmod +x setkey.sh
./setkey.sh

12.连接到客户端

redis-cli -p 7291
redis-cli -p 7292
redis-cli -p 7293
每个节点分布的数据

127.0.0.1:7291> dbsize
(integer) 6652
127.0.0.1:7292> dbsize
(integer) 6683
127.0.0.1:7293> dbsize
(integer) 6665

13 新增节点如何重新分片:
一个新节点add-node加入集群后,是没有slots的。
新增节点命令:redis-cli add-node 192.168.181.135:7297 192.168.181.135:7291
第一次节点为新增的节点 第二个节点为集群中的节点

14.redis-cli --cluster reshard 目标节点(IP端口)
这时会要求你输入分配的槽位,生成reshard计划,确定就会迁移数据

15:查询是否新增成功
./redis-cli -p 7297 -c 看是否可以赋值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值