redis部署bug问题解决:CLUSTERDOWN Hash slot not served
2021-02-17 21:05
1196 查看
记录一次shell部署Redis出现“malloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录”和“CLUSTERDOWN Hash slot not served”的问题分析解决
之前使用的shell脚本部署一些软件到新的机器环境后使用时出现标题中的error报错提示,但之前使用是并未发生过类似的情况。下面给出我解决的方法,有兴趣的可以继续看一下原因。
error报错现象
首先是第一次安装脚本没有成功,原因是目录位置发生了问题,所以改进脚本后进行了再次运行脚本安装部署redis服务(补充说明,重新安装时有可能遇到失败情况,原因是安装编译工具和相关工具占用了某些进程(一般是Python相关的程序进程,若kill进程会导致编译时出现致命错误,解决方法是在bash环境中重新安装编译环境,就是那些gcc等,否则编译过程中会发现缺少相关工具或没有一些文件从而安装失败)导致部署失败的问题)
第一个问题报错的具体现象如下图所示
解决方法:进入redis部署路径的src命令执行命令:make MALLOC=libc
[root@localhost src]# pwd /usr/local/redis/src [root@localhost src]# make MALLOC=libc
此后再重新进行部署安装即可,此时可以发现redis的相关命令都可以使用了
第二个问题报错的具体现象如下图所示
该问题解决的方法如下:
[root@localhost service_project]# redis-cli --cluster fix 127.0.0.1:6379 #此后会进行fix操作设置
解决思路:原因是集群的hash槽未能正常运行,所以可以去检查集群的slots的问题,我们知道redis的hash槽数目是16384个,用于储存数据的,而这些槽并未完全被分配到所有节点
设置完成验证
[root@localhost service_project]# redis-cli --cluster fix 127.0.0.1:6379 127.0.0.1:6379 (95c37af4...) -> 0 keys | 16384 slots | 0 slaves. [OK] 0 keys in 1 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 127.0.0.1:6379) M: 95c37af4524069ab816d326f8204420bc4a420fa 127.0.0.1:6379 slots:[0-16383] (16384 slots) master [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [root@localhost service_project]# redis-cli 127.0.0.1:6379> set a 1 OK 127.0.0.1:6379> get a "1"
出现该现象的情况是二次部署编译安装导致的,不知道其他情况是否会遇到相同问题,欢迎留言告知,谢谢阅读!
相关文章推荐
- CLUSTERDOWN Hash slot not served
- redis 单台cluster下解决set报错问题
- REDIS集群部署步骤以及问题解决
- 在windows上部署使用Redis出现问题的解决方法
- 解决spring4连接redis集群报错:CLUSTERDOWN The cluster is down
- [Bug]redis问题解决(MISCONF Redis is configured to save RDB snapshots)
- 基于redis(key分段,避免一个key过大) 和db实现的 布隆过滤器(解决hash碰撞问题)
- BUG Review:关于getting 'android:xxx' attribute: attribute is not a string value的问题及解决方法
- Windows服务部署问题,The source was not found错误的解决方法
- 部署tomcat,解决not found for the web module问题
- Could not connect to Redis No route to host问题解决
- 解决CentOS 中部署JasperReport时出错的问题。错误:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' is not available to the JVM.
- Window7 下 Eclipse 部署JBOSS 下 The LogManager was not properly installed 问题解决
- Redis "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk"问题的解决
- 在windows上部署使用Redis出现问题的解决方法
- redis Could not connect to Redis at 127.0.0.1:6379: Connection refused 问题解决
- 问题解决:Tomcat 部署 Could not copy all resources to 或者Undeployment Failure could not be redeployed
- 【问题解决】Redis存储Hash-Map<String,Object>时无法序列化问题
- web项目部署solr问题解决(Server is shutting down or failed to initialize和solr.clustering.ClusteringComponent)
- mysql及redis环境部署时遇到的问题解决