首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
在人才库的柠檬精很讨厌吃香菜
门头沟学院 产品经理
发布于浙江
关注
已关注
取消关注
@每天两题神清气爽:
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-23 14:55
已编辑
门头沟学院 客户端其它
再再再再强调一遍!秋招不要装逼
分享一些秋招投递渠道,和我投递方式的一些心得,我本人学历双非二本,大家看完可以一起补充一下,我说的也不是很全吧。一、官网投递我愿称之为最磨叽的投简历方式,要是能导入简历还好,手填纯折磨百度上搜 公司名 + 校招官网。举例:字节校招官网、百度校招官网。牛客提供了官网直达的功能。点击直达官网投、使劲投、闷头投,功能位置如下图:二、沟通式投简历最经典的****、应届生、牛客、*******等,我是用这几个,****达到每日上限,就换一个投,有两点要注意。打招呼的话语。我理解是没必要整一大长串子,没必要,我是Hr,我看见我会烦(有没有Hr的小姐姐在评论区回复一下是这样嘛),精简,可以理解我自我介绍的缩...
ResourceUt...:
ld那何止内推,直通了吧
工作相关事情
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-25 13:51
什么都不谈就直接邀约面试对吗?
发完简历之后,hr问了问地址距离之类的然后我还什么都没来的及问就直接邀约面试,真服了是这个面试官的问题还是我的问题
点赞
评论
收藏
分享
06-26 12:49
成都信息工程大学 单片机
有大佬帮忙康康简历吗
目前大三找实习,在成都根本没人要,哪里有问题啊😭
点赞
评论
收藏
分享
06-02 23:35
门头沟学院 后端
在 boss 上找到了好工作
六十块钱的发烧友,哈哈哈哈哈哈哈哈哈哈
门口唉提是地铁杀:
之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞
评论
收藏
分享
07-22 11:39
西安电子科技大学 芯片研发
小米提前批挂
没有测评没有笔试什么都没有直接就是已挂
投递小米集团等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批一面 7.24
1.3W
2
...
字节复活赛
9030
3
...
不懂来大厂实习究竟能学到啥?
4139
4
...
字节生活服务(杭州)一二三面(等HR or 挂)
4104
5
...
滴滴提前批面经
3527
6
...
百度提前批一面:面试官居然让我手撕两数之和???最奇幻的一轮面试,结束还说.......
3443
7
...
入我滴滴!早十晚六 !
3179
8
...
终章
2806
9
...
字节实习第三天10点下班,哭了
2561
10
...
团子呆了一个多月,想走的欲望达到的了顶峰
2514
创作者周榜
更多
正在热议
更多
#
哪些公司开提前批了?
#
27921次浏览
268人参与
#
入职以后才知道的校招谎言
#
88690次浏览
583人参与
#
风评不好的公司,你会去吗?
#
63587次浏览
450人参与
#
华子oc时间线
#
1244610次浏览
6487人参与
#
哪些公司校招卡第一学历
#
70416次浏览
280人参与
#
校招第一份工作你干了多久?
#
95314次浏览
423人参与
#
实习如何「偷」产出?
#
52971次浏览
1355人参与
#
除了主业以外,你还有哪些其他收入?
#
12628次浏览
202人参与
#
不卡学历的大厂有哪些?
#
30684次浏览
232人参与
#
机械人,你的第一份感谢信是谁给的
#
30615次浏览
310人参与
#
校招阶段,学历VS技术哪个更重要?
#
18256次浏览
188人参与
#
职场新人体验
#
27291次浏览
251人参与
#
研究所笔面经互助
#
78583次浏览
483人参与
#
工作丧失热情的瞬间
#
294153次浏览
2372人参与
#
腾讯音乐求职进展汇总
#
98284次浏览
571人参与
#
你的秋招第一场笔试是哪家
#
148288次浏览
1485人参与
#
社恐入职新公司如何融入团队
#
12067次浏览
63人参与
#
华为开奖那些事
#
4094716次浏览
24608人参与
#
校园里的破防时刻
#
12029次浏览
128人参与
#
Offer比较,你最看重什么?
#
191891次浏览
1308人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务