所以 , Redis中的LRU算法是这样实现的:首先定义一个淘汰池 , 这个淘汰池是一个数组(大小为16) , 然后触发淘汰时会根据配置的淘汰策略 , 先从符合条件的key中随机采样选出5(可在配置文件中配置)个key , 然后将这5个key按照空闲时间排序后放到淘汰池中 , 每次采样之后更新这个淘汰池 , 让这个淘汰池里保留的总是那些随机采样出的key中空闲时间最长的那部分key 。 需要删除key时 , 只需将淘汰池中空闲时间最长的key删掉即可 。
为了方便理解它的思想 , 我画了一个图:
Redis内存淘汰策略的配置学习了这8种内存淘汰策略之后 , Redis要什么时候会触发执行这些淘汰策略呢?又要怎么指定使用哪一种淘汰策略呢?这就要去Redis的配置文件中进行配置了
- 配置redis最大内存
当数据内存达到 maxmemory 时 , 便会触发redis的内存淘汰策略 。 该参数通常设定为其物理内存的四分之三 。
- 配置redis淘汰策略
- 配置最大采样数量
到这里相信我们已经熟练掌握了Redis的内存淘汰策略以及如何配置使用Redis的内存淘汰策略 , 后续文章会继续针对Redis这一中间件的知识做一系列的学习 。 如果想要了解更多Redis的知识 , 可以查看我的历史文章 。
点关注不迷路 , 跟我一起学技术!
- 半夜浏览“不健康网站”,如果删除浏览记录,是不是就没事了?
- 小米科技|半夜浏览“不健康网站”,如果删除浏览记录,是不是就没事了?
- 算法|一文读懂加密算法的类型+每种算法都有优缺点
- 用手机浏览不良网站,删除历史记录有用吗?过来人:删过了没有用
- 删除|关于验证码的“矛与盾”
- 三星|一文看尽三星2022新品发布会:后科技时代的思考
- 电子商务|一文看懂物联网、云计算、大数据、人工智能、5G、和区块链
- 删除|微信被人删除,为什么对方的微信还留在自己的列表里?原因很无奈
- 一图读懂 | 杨浦区全力抗疫情助企业促发展的若干政策措施
- 供应链管理|“我朋友年薪百万,在盒马捞鱼”,一文看懂新零售的「哆啦A梦」