滴滴-小桔充电面试经验

本文探讨了Redis中LRU淘汰策略的实现,包括随机采样、空闲时间计算以及淘汰过程。同时,解释了LinkedHashMap的内部实现,它通过双端链表维护插入或访问顺序。此外,简述了Spring Boot starter的自动配置原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


CSDN话题挑战赛第2期
参赛话题: 面试宝典 加粗样式

1、Redis set 可以设置大小吗?Redis lru队列如何实现?

无法像java一样,初始化设置大小。官方最大说是2的32次方-1个(42亿左右)。但是,一般都是要看自己机器内存大小而言,另外还有key-value的大小。

如果按照HashMap和双向链表实现,需要额外的存储存放 next 和 prev 指针,牺牲比较大的存储空间,显然是不划算的。所以Redis采用了一个近似的做法,就是随机取出若干个key,然后按照访问时间排序后,淘汰掉最不经常使用的,具体分析如下:

  • 整体思路:首先定义一个淘汰池,这个淘汰池是一个数组(大小为16),然后触发淘汰时会根据配置的淘汰策略,先从符合条件的key中随机采样选出5&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Think_Higher

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值