Redis集群搭建真费劲,慢得让人怀疑人生到底哪里卡住了
- 问答
- 2025-12-28 15:36:35
- 4
(看到一篇博客文章,标题是“记一次吐血搭建Redis集群的经历”,作者开头就写)Redis集群搭建真费劲,慢得让人怀疑人生到底哪里卡住了,我这暴脾气,差点把电脑给砸了。
事情是这样的,老板说单机的Redis怕出问题,性能到顶了,让我搞个集群,高可用嘛,我一想,这简单啊,Redis Cluster嘛,官方方案,照着文档做不就完了,结果,我太天真了,从下午两点搞到晚上十二点,整整十个小时,大部分时间都在和各种各样的“慢”和“卡住”作斗争。
(作者描述第一个坎儿)一开始就卡在启动节点上,我按教程,准备了六个虚拟机,三主三从,配置文件都改好了,redis-server命令一敲,心里美滋滋等着秒启动,结果,好几个节点启动是启动了,但日志里不停地刷警告,说什么WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.,我看着这一串英文就头大,虽然知道这不致命,但强迫症犯了,总觉得不解决后面会出幺蛾子,于是又得去查怎么修改这个somaxconn系统参数,又是sysctl.conf又是echo命令的,一来二去半个多小时没了,这还没开始组集群呢,光启动个服务就给我来个下马威。

(接着是重头戏,创建集群)好不容易六个实例都跑起来了,我摩拳擦掌,执行那个关键的创建集群命令:redis-cli --cluster create ... --cluster-replicas 1,命令输进去,回车,光标就在那儿一闪一闪,…就没然后了,等了快五分钟,一点反应都没有,既不报错也不成功,我一开始以为是节点多,在同步数据,比较慢,但又等了五分钟,还是老样子,我怀疑人生了,难道是网络问题?我ping了一下各个节点,通的啊,防火墙?我明明都关了呀。
(作者说他在网上疯狂搜索)没办法,只能祭出搜索引擎大法,搜“redis-cli --cluster create 卡住”,好家伙,出来一堆和我一样的倒霉蛋,我像找到组织一样,一条条看下去,有人说是因为Redis节点绑定了127.0.0.1,只允许本地连接,其他节点连不过来,我赶紧检查我的配置文件,果然,bind指令后面跟的是127.0.0.1,我把它改成内网IP或者0.0.0.0,心里想着这下总行了吧,重新启动节点,再次执行创建命令……你猜怎么着?还是卡住!

(另一个坑是关于密码的)我瘫在椅子上,感觉身体被掏空,突然看到一条回复说:“如果Redis设置了密码,创建集群时也要指定密码。”我猛地一拍大腿!对啊,我为了安全,在每个节点的配置里都加了requirepass密码,但创建集群的命令里我没带密码参数啊!怪不得它们之间“握手”失败,互相不认账,就在那儿干耗着,我赶紧在redis-cli命令后面加上了-a mypassword参数,怀着虔诚的心再次回车,这次,奇迹发生了!命令行开始哗啦啦地输出信息,询问我是否接受默认的主从分配方案,我颤抖着手输入yes……终于,屏幕上出现了[OK] All 16384 slots covered.的成功提示!那一刻,我差点哭出来。
(但高兴太早了)我以为大功告成,开始测试,用redis-cli连上集群,set一个值,成功,换个节点get一下,也能拿到,正得意呢,试着模拟故障,把一个主节点进程kill掉,心想它的从节点应该秒变主节点,实现高可用,结果,等了一分多钟,集群状态还是显示那个主节点fail,从节点依然是slave,整个集群写操作都卡住了,我又懵了。
(问题出在超时配置上)又是一通排查,发现问题出在cluster-node-timeout这个参数上,我用的默认值15秒,但可能因为虚拟机性能或者网络稍有延迟,故障转移没能在超时时间内完成,还有一个关键点,Redis Cluster的故障发现和转移是需要大多数主节点投票确认的,如果网络分区或者节点间通信不畅,这个过程就会变得非常“慢”,甚至无法完成,我把cluster-node-timeout适当调大了一点,并且再次确认所有节点之间的6379端口和16379(集群总线端口)都是通的,这才终于看到了自动故障切换的成功画面。
(作者最后感慨道)回过头来看,Redis集群搭建本身命令不复杂,但每一个细节都能让你卡半天,从系统参数,到网络配置,到密码认证,再到超时时间,任何一个地方没注意到,它就能给你“慢”得让你怀疑人生,这种感觉就像是拼一个复杂的乐高,说明书就几页,但如果你有一个小零件没按紧,或者装错了顺序,整个模型就立不起来,你看着那几页简单的说明书,再看看眼前一堆散乱的零件,那种挫败感,真是谁试谁知道,搭建Redis集群,真不是敲几行命令就完事儿的活儿,耐心和细心得经得起考验才行。
本文由度秀梅于2025-12-28发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://www.haoid.cn/wenda/70108.html
