CentOS7单机线下搭建redis7集群(开机自启动)
CentOS7单机线下搭建redis7集群(开机自启动)
本文记述基于centos7下搭建redis7集群且开机自启动,建议阅读本篇文章前参考本博主的另一篇文章CentOS线下安装Redis
⚠️ 本文记述的集群搭建中并不记述如何搭建主从redis结构
规划:我使用一台主机搭建一个3个节点的redis集群,规划3个端口 6379,6380,6381
# 查看redis是否在运行
ps -ef | grep redis
# 若redis在运行,则停止redis服务
service redis stop
# 拷贝原来的6379.conf文件,拷贝2份redis.conf文件,分别命名为6380.conf,6381.conf
cp /usr/local/redis/6379.conf /usr/local/redis/6380.conf
cp /usr/local/redis/6379.conf /usr/local/redis/6381.conf
修改6380.conf,6381.conf文件,注意修改数字,以下仅例举6379文件配置
修改约832行 cluster-enabled yes
修改约841行 cluster-config-file nodes-6379.conf
修改约847行 cluster-node-timeout 5000
cluster-enabled yes 打开集群模式
cluster-config-file nodes-6379.conf 集群配置
cluster-node-timeout 5000 集群中节点超时时间
修改完成后,保存
# 修改redisc文件
vim /etc/init.d/redis
修改如下
#!/bin/bash
# 定义端口
REDISPORT_1=6379
REDISPORT_2=6380
REDISPORT_3=6381
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT_1}.pid
# 定义配置项
CONF1="/usr/local/redis/${REDISPORT_1}.conf"
CONF2="/usr/local/redis/${REDISPORT_2}.conf"
CONF3="/usr/local/redis/${REDISPORT_3}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
# 配置启动命令
$EXEC $CONF1 & $EXEC $CONF2 & $EXEC $CONF3 & echo "redis-cluster start success"
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
# 配置停止命令
$CLIEXEC -p $REDISPORT_1 shutdown
$CLIEXEC -p $REDISPORT_2 shutdown
$CLIEXEC -p $REDISPORT_3 shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
修改好后保存
# 重载配置
systemctl daemon-reload
# 启动redis集群节点(目前尚未创建集群)
service redis start
# 查看各节点启动情况
ps -ef | grep redis
打印下列信息则启动成功
root 28774 1 0 11:05 ? 00:00:03 /usr/local/redis/bin/redis-server *:6381 [cluster]
root 28775 1 0 11:05 ? 00:00:03 /usr/local/redis/bin/redis-server *:6379 [cluster]
root 28779 1 0 11:05 ? 00:00:03 /usr/local/redis/bin/redis-server *:6380 [cluster]
root 32391 1891 0 11:15 pts/0 00:00:00 grep --color=auto redis
# 创建集群
./redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381
# 验证
./redis-cli -p 6379 cluster info
./redis-cli -p 6380 cluster info
./redis-cli -p 6381 cluster info
均打印下列信息则启动成功
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:2
cluster_stats_messages_ping_sent:1368
cluster_stats_messages_pong_sent:1382
cluster_stats_messages_meet_sent:1
cluster_stats_messages_sent:2751
cluster_stats_messages_ping_received:1381
cluster_stats_messages_pong_received:1369
cluster_stats_messages_meet_received:1
cluster_stats_messages_received:2751
本文来自博客园,作者:勤匠,转载请注明原文链接:https://www.cnblogs.com/JarryShu/articles/18306365
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现