redis的过期策略、内存淘汰策略
时间: 2023-10-02 08:04:00 浏览: 118
Redis的过期策略和内存淘汰策略是两个不同的概念。
1. 过期策略
Redis中的过期策略是指当一个键过期后,Redis如何处理它。Redis中有两种过期策略:
- 定时删除:当一个键过期时,Redis不会立即删除它,而是将它加入到一个专门的过期键列表中。Redis会以一定的频率遍历这个过期键列表,将过期的键删除。
- 惰性删除:当一个键过期时,Redis不会立即删除它,而是在客户端访问这个键时再检查它是否过期,如果过期了就删除它。
默认情况下,Redis使用的是惰性删除策略。
2. 内存淘汰策略
Redis中的内存淘汰策略是指当Redis的内存达到一定的限制时,Redis如何选择要删除的键。Redis中有多种内存淘汰策略:
- noeviction:当内存达到限制时,Redis会直接返回错误,不允许再写入新键。
- allkeys-lru:当内存达到限制时,Redis会选择最近最少使用的键删除。
- allkeys-random:当内存达到限制时,Redis会随机选择一个键删除。
- volatile-lru:当内存达到限制时,Redis会选择过期时间最近的最少使用的键删除。
- volatile-random:当内存达到限制时,Redis会随机选择一个过期时间最近的键删除。
默认情况下,Redis使用的是noeviction策略,即当内存达到限制时,Redis会直接返回错误。
相关问题
redis过期策略和淘汰策略的区别
Redis中的过期策略和淘汰策略是两个不同的概念。
过期策略指的是当Redis中的某个key过期时,Redis会如何处理这个key。Redis中有两种过期策略:
1. 定时过期:Redis会将过期的key放入一个独立的字典中,并在每次执行命令时,对字典中的一部分key进行检查并删除已过期的key。
2. 惰性过期:当某个key被访问时,Redis会检查这个key是否过期,如果过期则立即删除。
淘汰策略指的是当Redis中的内存不足时,Redis会如何淘汰一些key来腾出内存。Redis中有五种淘汰策略:
1. noeviction:不淘汰,直接返回错误。
2. allkeys-lru:从所有key中,选择最近最少使用的key淘汰。
3. volatile-lru:从设置了过期时间的key中,选择最近最少使用的key淘汰。
4. allkeys-random:从所有key中,随机选择一些key淘汰。
5. volatile-random:从设置了过期时间的key中,随机选择一些key淘汰。
总体来说,过期策略和淘汰策略都是为了提高Redis的内存利用率和性能,但是它们的目的和处理方式不同。
Redis删除策略与淘汰策略
Redis删除策略与淘汰策略是用来管理内存空间的。当Redis的内存被写满时,会触发内存的淘汰策略。删除策略针对的是通过expire命令设置了过期时间的数据,而淘汰策略则针对那些没有过期时间或者是永久性数据的情况。
Redis的删除策略有以下几种:
- noeviction:只返回错误,不会删除任何键。这是Redis的默认淘汰策略。
- volatile-ttl:删除即将过期(剩余存活时间最短)的键。
- volatile-random:在设置了过期时间的键中,随机删除某个键。
- allkeys-random:从所有键中随机删除某个键。
- volatile-lru:基于最近最少使用(LRU)算法,删除最近最少使用的键。
- allkeys-lru:基于LRU算法,从所有键中删除最近最少使用的键。这是最常使用的策略。
需要注意的是,当Redis执行命令之前会检测内存是否充足,如果不满足加入新数据的条件,就会执行淘汰策略来删除未过期的数据。淘汰策略会根据具体的配置文件来确定使用哪种策略。
总结起来,删除策略是针对设置了过期时间的数据,而淘汰策略则是针对没有过期时间的数据或者是永久性数据,用来管理Redis的内存空间。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [redis的删除策略与淘汰策略](https://blog.csdn.net/weixin_42112028/article/details/125297076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [Redis删除策略和淘汰策略](https://blog.csdn.net/weixin_52464817/article/details/125859022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文