首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Inedible
门头沟学院 Java
发布于陕西
关注
已关注
取消关注
@每天两题神清气爽:
Redis 大 key 要如何处理?
面试官:Redis 大 key 要如何处理?一般来说,下面两种情况被称为大keyString类型的值大于10KBHash、List、Set、ZSet类型的元素个数超过5000个大Key会造成以下问题:客户端超时阻塞:由于Redis执行命令是单线程处理,然后在操作大key时会比较耗时,阻塞其他命令的执行引发网络阻塞:每次获取大key产生的网络流量较大,如果一个key的大小是1MB,每次访问量是1000,那么每秒会产生1000MB的流量,这对普通千兆网卡的服务器是灾难性的阻塞工作线程:如果使用del删除大key时,会阻塞工作线程,这样没法处理后续命令内存分布不均,集群模型在slot分片均匀情况下,会出现数据和查询倾斜情况,部分有大key的Redis节点占用内存多,QPS也会比较大。怎么找到大key呢?通过 redis-cli --bigkeys 命令查找大key:最好在从节点或者业务低峰阶段进行扫描查询,以免影响实例正常运行该方法也存在不足,只能返回每种类型中最大的那个Key,且对于集合类型来说只统计集合元素个数多少而非实际占用的内存。 redis-cli -h 127.0.0.1 -p6379 -a "password" -- bigkeys使用 scan 命令查找大Key使用scan命令对数据库扫描,然后用type命令获取返回的每一个key的类型。对于String类型,可以直接使用strlen命令获取字符串的长度,也就是占用的空间字节数对于集合类型来说,有两种方法可以获得它占用的内存大小:如果能够预先从业务层知道集合元素的平均大小,那么可以使用下面的命令获取集合元素的个数,然后乘以集合元素的平均大小,这样就可获得集合占用的内存大小了。List类型:`LLEN`;Hash 类型:`HLEN` ;Set 类型:`SCARD` ;Set 类型:`SCARD`。如果不能提前知道写入集合元素大小,可以使用 memory usage命令,查询一个键值对占用的内存空间。使用RdbTools工具查找大keyRdbTools第三方开源工具可以用来解析Redis的RDB文件,找到其中的大key。比如下面这条命令,将大于10Kb的Key输出到一个表格文件rdb dump.rdb -c memory --bytes 10240 -f redis.csv如何删除大Key呢?删除操作的本质是要释放键值对占用的内存空间。释放内存后为了更加高效的管理内存空间,操作系统需要把释放掉的内存块插入一个空闲内存块的链表,以便后续进行管理和再分配,这个过程本身需要一定时间,而且会阻塞当前释放内存的应用程序。所以如果一下子释放了大量内存,空闲地址块链表操作时间就会增加,相应的就会造成redis主线程的阻塞。主线程阻塞,其他所有请求都可能会超时,超时越来越多,会造成redis连接耗尽,产生各种异常。因此删除一个大key,要小心。分批次删除。对于删除大Hash,使用hscan命令,每次获取100个字段,再用hdel命令,每次删除1个字段。对于删除大List,通过ltrim命令,每次删除少量元素对于删除大 Set,使用 sscan 命令,每次扫描集合中 100 个元素,再用 srem 命令每次删除一个键。对于删除大 ZSet,使用 zremrangebyrank 命令,每次删除 top 100个元素。异步删除Redis4.0开始,可以采用异步删除法,用unlink命令代替del来删除。这样Redis会将这个key放入到一个异步线层中进程删除,不会阻塞主线程。
点赞 11
评论 4
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-26 10:41
海康威视_技术支持部_云存储开发工程师(准入职员工)
网易游戏内推
幸福三要素:吃、累、全 关于吃 网易作为互联网行业出名的猪厂,真的是有原因的!作为曾经的员工,不得不夸夸网易,第一个优点是有饭堂,第二个优点是饭堂真的太多好吃的,单单自选菜式,每顿就有十几种不同的菜可选,还有粥粉面、麻辣烫、汉堡薯条、铁板饭、健康餐……近乎完美地覆盖到不同口味的同事需求!此外,早餐和宵夜都是免费的!早餐样式也很多,好喜欢吃蜂蜜蛋糕、蛋挞和肠粉!!宵夜的话也有几种选择,但是得加班到点才能领取,一般是面包+水果+牛奶,也还阔以! 所以,如果入职网易一点也不用担心每天吃啥! 关于累 感到累才会有所获,个人感觉工作强度还是相对较大的,而且非常卷。除了刚入职的一段时间,后面基本上每天都要...
网易游戏公司福利 595人发布
点赞
评论
收藏
分享
01-26 15:19
汤臣倍健_市场倍优生(准入职员工)
图拉斯内推,图拉斯内推码
面经:蓝禾的流程推得很快,基本上投完两天就接到了hr的初试电话,直接进行了初试。初试全程大概三十分钟,hr小哥态度很和善。主要问了实践经历获奖的情况最有成就感的事情对电商运营的理解选择公司的标准等,都是比较常规的问题。图拉斯2026届校招启动,今年HC翻倍,抓紧投递~【我们是】图拉斯(原蓝禾) 是一家集产品、设计、研发、品牌、营销和大数据运营于一体的创新型科技公司,总部位于中国深圳,全球员工规模超3000人。【base】深圳【岗位】运营(国内)、运营(国外)、营销、设计、研发技术、职能内推链接:https://lanhevip.jobs.feishu.cn/s/gAwh1MlZJsw内推码:H...
点赞
评论
收藏
分享
2025-12-22 16:31
已编辑
桂林电子科技大学 Python
逆天某科技公司某HR,骂人撤回后拉黑
贼逆天啊,发了个“youbing”然后光速撤回拉黑了,没截下来。
很奥的前端仔:
如果你接了offer 临时又说不去 hr确实要多做一些工作。 当然如果是接offer之前当我没说
点赞
评论
收藏
分享
01-22 14:36
门头沟学院 Java
农发行软开25年录用名单
全部是92硕士研究生学历
点赞
评论
收藏
分享
今天 13:02
文远知行_感知算法工程师(准入职员工)
文远知行内推,文远知行内推码
恍恍惚惚也实习快半年了,工作主要是后端开发。 进了才知道是自动驾驶头部的明星初创(不是的话别打我🫣)。每天从家走路15min/骑车5min到公司属实很爽。 整体规模不大,工作内容还是很丰富。从python后端到java后端,中间又穿插了一个月前端开发(噩梦hhh),以后很可能还会涉及scala。长远来看,应该还是java和scala为主,go也有使用但是不清楚我会不会用上。 我本身是第一段开发实习,加上底子很弱,确实学到很多也成长很多。被分到各种任务有时候还是蛮慌张的,好在结果整体还ok! 不提倡狂加班,还是以结果为导向,干完就可以溜溜球。加上通勤很少,整体强度不算很大。组内氛围也是挺不错的...
文远知行公司福利 551人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
J人永远闲不下来于是去提前实习
1993
2
...
牛客吐槽大会 | 有槽不吐,留着过年?吐完领现金红包,痛快!
1971
3
...
拥抱AI,程序员的最后出路
1558
4
...
mentor视角下的优秀实习生
1540
5
...
真正会被取代的,是你心里面的幻觉
1515
6
...
大厂提前实习对AI开发的新感悟
1254
7
...
努力挣钱的意义具象化了
1242
8
...
马斯克最新炸裂采访,AI会带走一半工作岗位,普通人将何去何从?
1194
9
...
去独角兽做龙头还是去大厂做凤尾
1128
10
...
我身材再曼妙,也没有我的工资好笑!
1050
创作者周榜
更多
正在热议
更多
#
牛客吐槽大会
#
2228次浏览
54人参与
#
机械人你知道哪些单休企业
#
82995次浏览
413人参与
#
今年春招是金一银二嘛?
#
7427次浏览
89人参与
#
参加完秋招的机械人,还参加春招吗?
#
103515次浏览
682人参与
#
1月小结:你过的开心吗?
#
1686次浏览
50人参与
#
抛开难度不谈,你最想去哪家公司?
#
3721次浏览
100人参与
#
为什么有人零实习也能进大厂?
#
4642次浏览
110人参与
#
AI时代的工作 VS 传统时代的工作,有哪些不同?
#
7860次浏览
190人参与
#
没关系,至少我的__很曼妙
#
3564次浏览
63人参与
#
赚钱的意义在这一刻具象化
#
3724次浏览
90人参与
#
你的第一家实习公司是什么档次?
#
3930次浏览
67人参与
#
当你问AI“你会取代我的工作吗”,它说_?
#
3432次浏览
120人参与
#
你的landing期是如何度过的?
#
7971次浏览
147人参与
#
机械人春招想让哪家公司来捞你?
#
379145次浏览
3139人参与
#
AI求职实录
#
2929次浏览
90人参与
#
除了Java,最推荐学什么技术?
#
5414次浏览
139人参与
#
一人一道大厂面试题
#
114073次浏览
1263人参与
#
设计人如何选offer
#
187062次浏览
864人参与
#
你在职场上见过哪些“水货”同事
#
30696次浏览
167人参与
#
简历中的项目经历要怎么写?
#
287724次浏览
3801人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务