Java基础、中级、高级、架构面试资料

Redis 的大 Key 扫描 redis-cli -h{ip} -p{port} bigkeys 用法详解

JAVA herman 8534浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

代码中的问题,光靠 Code Review 是不够的。Code Review 主要是解决规范问题,当然也能排查出一些 bug。

Code Review 适合技术驱动型团队、公共服务型团队、测试缺失型团队、新人密集型团队、任何有主观意愿的团队。Code Review 活动主要围绕下面 4 项工作开展。

Code Review 的作用

因此,对于生产中的一些问题,我们还需要做到主动出击,主动去观察每个服务的健康状况。今天我们就一起来看看如果提前发现 Redis 中使用不合理的大 Key。

redis-cli -h{ip} -p{port} bigkeys 命令就是干这个事情的。该命令会对 redis 中的 key 进行采样,寻找较大的 keys。是用的是 scan 方式,不用担心会阻塞 redis 很长时间不能处理其他的请求。执行的结果可以用于分析 redis 的内存的只用状态,每种类型 key 的平均大小。

例如当我执行:redis-cli -h 127.0.0.1 -p 7001  –bigkeys 后,会出现如下内容:

redis-cli -h 127.0.0.1 -p 7001  –bigkeys

redis-cli -h 127.0.0.1 -p 7001  –bigkeys

String 就是字符串、Hash 就是哈希、List 就是列表、Set 就是集合、zset(sorted set:有序集合)。

字符串类型:一般认为超过 10k 的就是 bigkey,但是这个值和具体的 OPS 相关。

非字符串类型:体现在哈希,列表,集合类型元素过多。

bigkey 通常会导致内存空间不平衡,超时阻塞,如果 key 较大,redis 又是单线程,操作 bigkey 比较耗时,那么阻塞 redis 的可能性增大。每次获取 bigKey 的网络流量较大,假设一个 bigkey 为 1MB,每秒访问量为 1000,那么每秒产生 1000MB 的流量,对于普通千兆网卡,按照字节算 128M/S 的服务器来说可能扛不住。而且一般服务器采用单机多实例方式来部署,所以还可能对其他实例造成影响。

当你以为你会用 Redis 了,就可以找高薪工作了,但实际上会优化才重要!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Redis 的大 Key 扫描 redis-cli -h{ip} -p{port} bigkeys 用法详解