小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。
首先安装单机版Redis
安装配置:
服务IP | Redis安装目录 |
---|---|
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
复制代码
第二步:配置文件修改
拷贝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/
复制代码
批量替换配置文件内容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
复制代码
第三步:启动节点
启动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
复制代码
第四步:创建集群
使用绝对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确认 slot分配图,这里记录下来,后续测试有用
节点 | IP | 槽范围 |
---|---|---|
Master[0] | ||
192.168.211.107:6319 | Slots 0 - 5460 | |
Master[1] | 192.168.211.107:6329 | Slots 5461 - 10922 |
Master[2] | 192.168.211.107:6339 | Slots 10923 - 16383 |
集群创建完成
第五步:测试集群
通过脚本批量插入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
复制代码
从上面看出节点数据分布较为均匀,集群部署成功!