当前位置:网站首页>面试官:Redis的共享对象池了解吗?
面试官:Redis的共享对象池了解吗?
2022-06-27 12:45:00 【51CTO】
我正在面试间里焦急地等待着,突然听到了门外的脚步声,随即门被打开,穿着干净满脸清秀的青年走了进来,一股男士香水的淡香扑面而来。
面试官:“平时在工作中用过Redis吗?”
我:“用的比较多。”我心中暗喜,Redis我熟啊,什么五种数据类型、两种持久化方式倒背如流啊。
面试官:“Redis的共享对象池了解吗?”
“这个。。没有太深入了解。”我支支吾吾的说到,手心已经冒出冷汗。
面试官:“回去等消息吧。”
这句话说的干净利落,然后就没有然后了。失败是成功的妈妈,我不气馁,决定马上恶补一下。
共享对象池
创建大量重复的整数类型势必会耗费大量内存,所以在Redis内部维护了一个从0到9999的整数对象池,这就是共享对象池。
为了验证和理解,我们使用object refcount命令查看一下对象引用数,效果如下:
设置one-more-num1为404后,直接使用共享池中的整数对象,所以引用数为2(另外一个引用在对象池上);再设置one-more-num2为404后,引用数变成了3。
不过需要注意的是:当设置最大内存值(maxmemory)并且启用LRU相关淘汰策略(如:volatile-lru、allkeys-lru)时,共享对象池将会被禁止使用。
为什么没有字符串对象池?
共享对象池中一个关键操作是判断对象是否相等。
Redis中只有整数类型的对象池,是因为整数的比较算法的时间复杂度是O(1),也只保留了10000个整数为了防止对象池的过度浪费。
相对而言,字符串的比较算法的时间复杂度是O(n),特别是长字符串的比较更加消耗性能。
而且,整数类型被重复使用的概率很大,字符串被重复使用的概率相比就会小很多很多,所以在Redis中只用整数类型的对象共享池。
面试官你等着瞧吧,今天你对我爱答不理,明天我让你高攀不起,哈哈哈。。。
参考文献:
《Redis设计与实现》
《Redis开发与运维》
《Redis 深度历险:核心原理与应用实践》
竟然已经看到这里了,你我定是有缘人,留下你的点赞和关注,他日必成大器。
边栏推荐
- Tiktok practice ~ public / private short video interchange
- JSON.stringify用法
- Two usages of enumeration classes
- ssh工作流程及原理
- 使用bitnamiredis-sentinel部署Redis 哨兵模式
- 【TcaplusDB知识库】TcaplusDB-tcapulogmgr工具介绍(一)
- Centos7命令行安装Oracle11g
- 阿胖的操作记录
- An interesting experiment of netmask
- Uniapp drop-down layer selection box effect demo (sorting)
猜你喜欢

SSH workflow and principle

Cloud native (30) | kubernetes' app store Helm

On the complexity of software development and the way to improve its efficiency

convn-N 维卷积

Privacy computing fat offline prediction

这是什么空调?

带你认识图数据库性能和场景测试利器LDBC SNB

Hue new account error reporting solution

zabbix支持钉钉报警

Snipaste, the world's strongest screenshot software
随机推荐
清楚的自我定位
Vs debugging skills
Ali an interview question: use two threads to output letters and numbers alternately
xxl-job学习梳理
Configuration management center of microservices
基于STM32设计的蓝牙健康管理设备
再懂已是曲中人
Local visualization tool connects to redis of Alibaba cloud CentOS server
全志A13折腾备忘
nifi从入门到实战(保姆级教程)——身份认证
每日刷题记录 (六)
阿里一个面试题:使用两个线程,交替输出字母和数字
推荐系统的下一步?阿里时空聚合GNN,效果吊打LightGCN!
How to close windows defender Security Center
数据库系列:MySQL索引优化与性能提升总结(综合版)
l六月集训(第27天) —— 图
Deploy redis sentinel mode using bitnamiredis Sentinel
How to modify a node_ Files in modules
基于JSP实现医院病历管理系统
Uni app develops wechat applet to dynamically render pages and dynamically change the order of page component modules