Redis内存告警处理
你好,我是本际云服务器推荐网的小编小本本。今天要和大家分享一下关于Redis内存告警处理的内容。

Bigkey的危害
Bigkey指的是Value占用内存空间大或者元素多的Key。它会有以下危害:
- 超时阻塞:因为Redis单线程执行命令的特性,操作bigkey等耗时的操作,都可能阻塞Redis其他业务操作,造成慢查询等性能问题;
- 网络拥塞:读取bigkey意味着需要消耗更多的网络流量占用更多的网络带宽,可能造成网络拥塞,自身变慢的同时影响到其他业务性能;
- 过期删除:bigkey相关的删除或自动过期时在低版本中容易产生阻塞,主库较长时间的阻塞可能引发主备同步中断或主备切换;
- 迁移困难:bigkey迁移可能会失败而且容易阻塞redis;
- 内存空间不均匀:集群架构下某个数据分片的内存使用率远超其它数据分片,无法使数据分片的内存资源达到均衡,不利于集群对内存空间的统一管理;
- 内存空间资源紧张:redis内存不断变大引发OOM,或达到maxmemory设置值引发写阻塞或核心key被驱逐。
如何发现bigkey
发现redis中的bigkey,有以下几种方法:
- redis-cli自带的命令,redis-cli-h-p–bigkeys,该命令以遍历的方式分析redis实例中的所有key,并返回整体统计信息和每钟数据类型中最大的key,并不能找出整个redis中所有的大key;
- 通过redis-rdb-tools工具包中的rdb工具分析redis的dump.rdb文件生成csv文件再导入到mysql、Oracle等数据库中进行统计分析,该工具是离线分析rdb持久化文件对性能无影响;
- 某些公有云的可视化页面分析工具,如阿里云redis大key搜索工具等。
不管对于redis的开发还是运维人员,bigkey就是一个不稳定因素,时不时带来稳定性风险,使用redis过程中都应该经常关注数据中是否有bigkey,及早发现并处理,避免对业务系统的进一步危害。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6347.html
