上一篇
场景引入:
凌晨3点,你正沉浸在代码的海洋中,突然线上服务报警——单机Redis挂了!所有缓存数据瞬间蒸发,用户订单丢失,客服电话被打爆…💥 这时候才明白:单点Redis就像走钢丝,而集群才是你的安全网,今天就用Mac本地环境,带你搭建一个三主三从的高可用Redis集群,从此告别数据裸奔!
# 没有的话先安装 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install redis
brew install ruby
避免单文件夹混乱,为每个节点独立分配空间:
mkdir -p ~/redis-cluster/{7000,7001,7002,7003,7004,7005}
以7000端口为例(其他节点替换端口号即可):
cat <<EOF > ~/redis-cluster/7000/redis.conf port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes daemonize yes # 后台运行 EOF
💡 关键参数说明:
cluster-enabled yes
:开启集群模式 appendonly yes
:数据持久化保障 一键启动6个实例:
for port in {7000..7005}; do redis-server ~/redis-cluster/$port/redis.conf done
✅ 检查是否运行成功:
ps aux | grep redis-server | grep -v grep
使用Redis自带的redis-cli --cluster create
命令:
redis-cli --cluster create \ 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 \ 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \ --cluster-replicas 1
👉 注意:这里--cluster-replicas 1
表示每个主节点配1个从节点,自动分配主从关系。
redis-cli -p 7000 cluster nodes
看到类似以下输出即成功:
a1b2c3... 127.0.0.1:7000@17000 myself,master - 0 1680000000000 1 connected 0-5460 d4e5f6... 127.0.0.1:7001@17001 master - 0 1680000000000 2 connected 5461-10922 ...(其他节点信息)
写入数据自动分配到不同节点:
redis-cli -p 7000 -c # -c表示以集群模式连接 > set user:1 "Alice" # 可能被重定向到7001节点 > get user:1
redis-cli -p 7000 shutdown
redis-cli -p 7001 cluster nodes | grep 7003
如果看到7003
角色从slave
变为master
,恭喜!故障转移成功 🎉
requirepass
) redis-cli --cluster check
+ Prometheus 通过6个Redis实例组成的集群,你的数据现在拥有:
✔️ 自动分片(数据均匀分布)
✔️ 故障转移(主节点挂掉从节点顶上)
✔️ 持久化保障(AOF防止重启丢数据)
下次再遇到深夜报警,终于可以淡定地喝口咖啡了 ☕️
(注:本文基于Redis 7.2.3版本验证,2025年8月测试通过)
本文由 完颜鸿博 于2025-08-02发表在【云服务器提供商】,文中图片由(完颜鸿博)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/513606.html
发表评论