CentOS 7单机安装Redis Cluster(3主3从伪集群)

772 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

首先安装单机版Redis

安装配置:

服务IPRedis安装目录
192.168.211.107/usr/local/soft/redis-6.2.4/

第一步:创建数据目录

创建不同的数据目录

cd /usr/local/soft/redis-6.2.4/
mkdir redis-cluster
cd redis-cluster/
mkdir 6319 6329 6339 6349 6359 6369

image.png

第二步:配置文件修改

拷贝Redis配置文件redis.conf到创建的第一个文件夹下

cp /usr/local/soft/redis-6.2.4/redis.conf  /usr/local/soft/redis-6.2.4/redis-cluster/6319

修改配置文件

cd /usr/local/soft/redis-6.2.4/redis-cluster/6319
vim redis.conf

如下配置文件配置项如有不懂的,可以去我的单机版安装Redis实例中查看,这里搜索这些配置可以退出编辑模式 使用/xxx(斜杆+部分字符) 来搜索,或者直接从服务器拿下来修改

port 6319
protected-mode no
daemonize yes
dir "/usr/local/soft/redis-6.2.4/redis-cluster/6319/"
cluster-enabled yes
cluster-config-file nodes-6319.conf
cluster-node-timeout 15000
appendonly yes
pidfile "/var/run/redis_6319.pid"

外网集群需要增加如下配置

# 各节点网卡分配的IP(公网IP)
cluster-announce-ip xx.xx.xx.xx
# 节点映射端口
cluster-announce-port ${PORT}
# 节点总线端口
cluster-announce-bus-port ${PORT}

拷贝配置文件到其余5个创建的目录

cd /usr/local/soft/redis-6.2.4/redis-cluster/6319/
cp redis.conf ../6329/
cp redis.conf ../6339/
cp redis.conf ../6349/
cp redis.conf ../6359/
cp redis.conf ../6369/

image.png

批量替换配置文件内容sed -i 's/原字符串/新字符串/' /xxx/xx.xx

cd /usr/local/soft/redis-6.2.4/redis-cluster/
sed -i 's/6319/6329/g' 6329/redis.conf
sed -i 's/6319/6339/g' 6339/redis.conf
sed -i 's/6319/6349/g' 6349/redis.conf
sed -i 's/6319/6359/g' 6359/redis.conf
sed -i 's/6319/6369/g' 6369/redis.conf

image.png

第三步:启动节点

启动6个Redis节点

./src/redis-server redis-cluster/6319/redis.conf
./src/redis-server redis-cluster/6329/redis.conf
./src/redis-server redis-cluster/6339/redis.conf
./src/redis-server redis-cluster/6349/redis.conf
./src/redis-server redis-cluster/6359/redis.conf
./src/redis-server redis-cluster/6369/redis.conf

ps -ef|grep redis

image.png

第四步:创建集群

使用绝对IP地址启动集群

cd /usr/local/soft/redis-6.2.4/src/
redis-cli --cluster create 192.168.211.107:6319 192.168.211.107:6329 192.168.211.107:6339 192.168.211.107:6349 192.168.211.107:6359 192.168.211.107:6369 --cluster-replicas 1

Redis对6个节点分配3主3从,我们直接yes确认 image.png slot分配图,这里记录下来,后续测试有用

节点IP槽范围
Master[0]
192.168.211.107:6319Slots 0 - 5460
Master[1]192.168.211.107:6329Slots 5461 - 10922
Master[2]192.168.211.107:6339Slots 10923 - 16383

集群创建完成 image.png

第五步:测试集群

通过脚本批量插入key,来根据key的分布测试集群节点是否正常 创建脚本

cd /usr/local/soft/redis-6.2.4/redis-cluster/
vim batchKeyInsert.sh

**脚本内容是循环十万次往Redis中插入key ** redis-cli -h {host} -p {port} {command} 是一种客户端连接执行命令方式

redis-cli -h 192.168.211.107 -p 6319 -c -x set name$i >>redis.log

**-c **

连接集群结点时使用,此选项可防止moved和ask异常

**-x **

代表从标准输入读取数据作为该命令的最后一个参数

#!/bin/bash
for((i=0;i<100000;i++))
do
echo -en "Come on, i love java" | redis-cli -h 192.168.211.107 -p 6319 -c -x set name$i >>redis.log
done

文件赋予权限

chmod +x batchKeyInsert.sh

执行脚本(需要一点时间)

./batchKeyInsert.sh

进入三个主节点,连接客户端,查看节点的数据分布情况

cd /usr/local/soft/redis-6.2.4/src
redis-cli -p 6319
dbsize

image.png 从上面看出节点数据分布较为均匀,集群部署成功!