首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
以木
南京航空航天大学 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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
10-22 11:10
天津理工大学 运营
如果有一天你失业了请记住这几个网站
最近身边不少 IT 同行突然遭遇 “毕业”,看着他们焦虑找工作的样子,忍不住整理了 4 个能帮 IT 人快速回血的网站 —— 不管是想找全职、接私活,还是学新技能, 总有一个能用上!1. 牛客网:IT 面试 “急救包”如果想快速找全职,这个网站一定要锁死!里面有各大厂的历年面试真题,从基础的 Java 语法、算法题,到架构设计、项目复盘,分类特别细,还能在线敲代码刷题,做错了有详细解析。我当时失业后每天在这刷 2 小时题,尤其是 “面经板块”,很多同行会分享最新的面试流程和考点,比如某大厂最近重点问的微服务架构、分布式事务,提前准备好应对思路,面试时真的能少慌很多。另外它还有内推通道,不少企业...
点赞
评论
收藏
分享
10-23 11:37
深信服_技术服务工程师(准入职员工)
深信服内推,深信服内推码
深信服客经一站式面经1⃣️总体感受:一天全部面完,结果通知很快,群面和业务一面感觉很轻松但是业务二面孩子真的被压力坏了😭😭😭😭,汗流浃背了,以为自己凉了,但出来的时候hr跟我说过了。我两场业务面大约都面了四五十分钟,嘴巴都说干了,但是面试现场提供水,饮料,咖啡等本人今天凌晨两点睡的觉,七点起床,上午面一场,下午面三场还要被压力,已经快死了—————————————————————————2⃣️群面1.题目:三个候选人 选择一位当销售经理(题目是随机抽取的)2.流程:①读题3min②讨论30min③汇报2min3.本场bg一半以上都是985硕,我抢到了reporter的位置,讨论过程可能...
点赞
评论
收藏
分享
09-29 07:57
已编辑
门头沟学院 Java
好消息好消息好消息大厂全部OC!!!!
腾讯OC滴滴OC拼多多OC希音OC蓝厂OC联想OC哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
手撕震撼面试官一整年:
oc = offer crazy
点赞
评论
收藏
分享
09-18 15:45
山东工商学院 大数据开发工程师
这个风气真的很差!
不是哥们?谁带的风气,实习转正,那我为什么不在原公司。怕就是怕实习到6月来了句实习转正不过白嫖你当人力。真的恶心
想吃火锅的可乐在学c...:
还要一直干到26届毕业,毕业论文都不给回来写,这么坑
点赞
评论
收藏
分享
10-23 11:40
韶音科技_产品经理(准入职员工)
韶音科技内推,韶音科技内推码
1. 自我介绍 2. 人事问答: (1)你的研究方向?你们课题组的研究方向有哪些? (2)分工? (3)项目简述:项目背景?解决什么问题?你做了哪些工作?结构怎样设计的?工作过程中有探索性学习?动手实践吗?项目进展? (4)实验室有多少人? (5)博士有吗? (6)做项目会有老师或者博士师兄师姐指导? (7)往届师兄他们毕业的去向?就业方向? (8)有投递其他公司的提前批或者暑期实习?投了哪些公司?投的什么岗位?到什么流程了? (9)期望薪资? (10)选择企业考量的因素? (11)谈谈对公司的了解? (12)通过...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
一份好的技术简历长什么样?
6217
2
...
说真的,给和我一样的普通本科生的忠告
5466
3
...
谈薪前必看! 这些坑不要踩....
5290
4
...
万字长文:致未来的大厂工程师(面试技巧)
5114
5
...
公司开捞了,速改简历!
4117
6
...
转码4年,一场酣畅淋漓的绝地求生
3446
7
...
实习第一天就透底了
3268
8
...
秋招悲惨经历分享,希望缓解一下各位的焦虑
3142
9
...
金九银十结束,双非本硕、非科班悲惨秋招记录(持续更新,双非转码可参考)
2516
10
...
云智lastday
2197
创作者周榜
更多
正在热议
更多
#
如果秋招能重来,我会____
#
10389次浏览
101人参与
#
苦尽甘来时,再讲来时路
#
10192次浏览
180人参与
#
“vivo”个offer
#
19050次浏览
149人参与
#
如果上班像打游戏,你最想解锁什么技能
#
2329次浏览
32人参与
#
我是面试官,请用一句话让我破防
#
1900次浏览
19人参与
#
为了实习逃课值吗?
#
11718次浏览
98人参与
#
快手技术岗信息交流阵地
#
12268次浏览
74人参与
#
校招生月薪1W算什么水平
#
2734次浏览
22人参与
#
机械求职避坑tips
#
71177次浏览
485人参与
#
一份好的简历长什么样?
#
6467次浏览
168人参与
#
选完offer后,你后悔学机械吗?
#
42875次浏览
249人参与
#
秋招许愿,本周能____
#
14033次浏览
93人参与
#
选择和努力,哪个更重要?
#
134589次浏览
1036人参与
#
班味很重的人是啥样的?
#
4059次浏览
30人参与
#
应届生第一份工资要多少合适
#
3417次浏览
36人参与
#
投递无反馈,如何优化求职策略?
#
2210次浏览
26人参与
#
材料专业可以靠半导体脱坑吗?
#
26710次浏览
138人参与
#
机械制造秋招总结
#
82353次浏览
817人参与
#
大学最后一个寒假,我想……
#
60383次浏览
654人参与
#
职场新人体验
#
120159次浏览
825人参与
#
你觉得实习能学到东西吗
#
114445次浏览
1248人参与
#
新凯来求职进展汇总
#
57883次浏览
150人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务