Redis中redis-cluster需要注意哪些地方
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容主要讲解"Redis中redis-cluster需要注意哪些地方",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Redis中redis-cluste
千家信息网最后更新 2025年01月31日Redis中redis-cluster需要注意哪些地方
本篇内容主要讲解"Redis中redis-cluster需要注意哪些地方",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Redis中redis-cluster需要注意哪些地方"吧!
1.收到150告警,rdb持久化失败
15011:M 17 Sep 08:54:43.037 # Can't save in background: fork: Cannot allocate memory15011:M 17 Sep 08:54:49.043 * 1 changes in 900 seconds. Saving...15011:M 17 Sep 08:54:49.043 # Can't save in background: fork: Cannot allocate memory
2 查看主机内存(内心os:尼玛还有这么多内存呢)
[root@ip-172-31-43-150 ~]# free -g total used free shared buff/cache availableMem: 29 14 10 0 4 14Swap: 0 0 0
3 查看redis-cluster集群状态,显示150已down机,心慌慌
[root@ip-172-31-39-42 ~]# /usr/local/src/redis-4.0.8/src/redis-trib.rb check 172.31.39.42:6379[ERR] Sorry, can't connect to node 172.31.43.150:6379*** WARNING: 172.31.39.54:6379 claims to be slave of unknown node ID 6d2b67b9745a8d4bedb70d480645e3651fddaf3f.>>> Performing Cluster Check (using node 172.31.39.42:6379)M: 00f7bd511046438af2d1b41666a69ff77b6f176f 172.31.39.42:6379 slots:11258-11832,13655-16383 (3304 slots) master 1 additional replica(s)S: e771e70f580ec2799af50268865444cf425e000e 172.31.33.17:6379 slots: (0 slots) slave replicates 00f7bd511046438af2d1b41666a69ff77b6f176fS: 8bb99c5b9585269b66684400f036fca1d30e72cb 172.31.47.157:6379 slots: (0 slots) slave replicates 148697f75e9b4f84ad893f4d5377e96fdde7664dM: 148697f75e9b4f84ad893f4d5377e96fdde7664d 172.31.34.25:6379 slots:28,4799-5462,6375-7282,8194-9106,11833-12744 (3398 slots) master 1 additional replica(s)M: 40b766b505c54066de5b5d8eb214ea78c7df8c4b 172.31.36.10:6379 slots:7542-8193,9107-10922,12745-13654 (3378 slots) master 1 additional replica(s)S: f6a625cc2d6fb66d267b15c8d668ea150be262bc 172.31.37.68:6379 slots: (0 slots) slave replicates 792ab7473fa447d07582817eb2f489633001d831M: 792ab7473fa447d07582817eb2f489633001d831 172.31.33.182:6379 slots:0-27,29-1145,1822-2105,3406-4798,7283-7541 (3081 slots) master 1 additional replica(s)S: 92a5541964fc3e4bfb90f1750b9105d5705beb93 172.31.39.54:6379 slots: (0 slots) slave replicates 6d2b67b9745a8d4bedb70d480645e3651fddaf3fS: 7e5e1e341f33ebd7a3c20480b66a76bbd0922a4f 172.31.32.254:6379 slots: (0 slots) slave replicates 40b766b505c54066de5b5d8eb214ea78c7df8c4b[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[ERR] Not all 16384 slots are covered by nodes.
登上150检查redis的状态,发现好好的!
先解决持久化失败的问题:
1.172.31.39.54:6379> config set stop-writes-on-bgsave-error no ---解决应用端抛异常的问题OK172.31.39.54:6379> config rewriteOK172.31.39.54:6379> 2.开启内核参数,解决bgsave失败的问题[root@ip-172-31-33-182 ~]# sudo echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf[root@ip-172-31-33-182 ~]# sysctl -pvm.overcommit_memory = 1
再次查看日志,已经持久化成功,check集群也发现集群恢复正常
关于redis的内存分配学习:
Redis有自己的内存分配器,当key-value对象被移除时,Redis不会马上向操作系统释放其占用内存(例如,当用户往一个实例填充了5G的数据,移除其中2G数据,但占用内存可能仍会保持在5G左右)。为什么Redis要这样处理?有两个原因:1、OS可能会将释放内存交换到VM,但OS的VM又是物理文件,其IO读写效率较低,从而影响Redis性能表现;2、OS的VM换入换出是基于Page机制,同一Page内的部分数据对象被释放,但其他数据对象依然被其他应用使用中,导致在该Page内的Redis对象没有被释放。而Redis作者应该是考虑到以上问题,不希望Redis由此降低性能,所以在设计上Redis更倾向于自己掌控VM换入的粒度。(https://segmentfault.com/a/1190000004708270)
持久化的问题
Redis持久化磁盘IO方式及其带来的问题有Redis线上运维经验的人会发现Redis在物理内存使用比较多,但还没有超过实际物理内存总容量时就会发生不稳定甚至崩溃的问题,有人认为是基于快照方式持久化的fork系统调用造成内存占用加倍而导致的,这种观点是不准确的,因为fork 调用的copy-on-write机制是基于操作系统页这个单位的,也就是只有有写入的脏页会被复制,但是一般你的系统不会在短时间内所有的页都发生了写入而导致复制,那么是什么原因导致Redis崩溃的呢?答案是Redis的持久化使用了Buffer IO造成的,所谓Buffer IO是指Redis对持久化文件的写入和读取操作都会使用物理内存的Page Cache,而大多数数据库系统会使用Direct IO来绕过这层Page Cache并自行维护一个数据的Cache,而当Redis的持久化文件过大(尤其是快照文件),并对其进行读写时,磁盘文件中的数据都会被加载到物理内存中作为操作系统对该文件的一层Cache,而这层Cache的数据与Redis内存中管理的数据实际是重复存储的,虽然内核在物理内存紧张时会做Page Cache的剔除工作,但内核很可能认为某块Page Cache更重要,而让你的进程开始Swap ,这时你的系统就会开始出现不稳定或者崩溃了。我们的经验是当你的Redis物理内存使用超过内存总容量的3/5时就会开始比较危险了。
到此,相信大家对"Redis中redis-cluster需要注意哪些地方"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
内存
数据
物理
系统
问题
文件
对象
地方
操作系统
内核
实际
集群
学习
内容
原因
容量
快照
性能
方式
机制
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
linux时间同步服务器
软件开发 流水线 作业
软件开发模型有什么优缺点
qq在线竞猜软件开发
内存nosql数据库
我的世界服务器的地址
北京软件开发月薪2万
饥荒 服务器添加管理员
写网络安全论文的网站
zmud 数据库
悟空问答互联网科技
大连网络安全资质证书
简单的数据库管理系统设计
GE医疗软件开发待遇
杭州软件开发定制公司哪家强
长春工程学院网络技术
网络安全客服电话
北辰天气网络安全
汇纳科技数字赋能世界互联网
悬浮时钟软件开发
三级分销的数据库设计
成都信息网络安全企业
网关域名服务器
计算机网络技术重点归纳
软件开发合同备案申请减税
swot分析企业网络安全
网络安全训练营第46讲
dell服务器 r720
网络技术中fddi是
傅彤网络技术