简要说一下 Redis 的过期策略和内存淘汰机制
同时,Redis 也有多种内存淘汰机制,包括:
1. noeviction:不执行任何淘汰操作,当内存满时,Redis 执行所有写入操作时可能会返回错误。
2. volatile-lru:在过期集合中,淘汰最近最少使用(LRU)的键。
3. volatile-ttl:在过期集合中,淘汰剩余时间最短的键。
4. volatile-random:在过期集合中,随机淘汰一个键。
5. allkeys-lru:在所有键中,淘汰最近最少使用(LRU)的键。
6. allkeys-random:在所有键中,随机淘汰一个键。
以上淘汰策略仅针对内存满时的淘汰操作。用户也可以手动调用 Redis 的 del 或 unlink 命令删除指定键,以腾出更多内存。
-
上一篇
简要说一下 Redis 的过期策略和内存淘汰机制
<p>volatile-lru:从已设置过期时间的数据集( server.db[i].expires)中挑选最近最少使用的数据淘汰。 </p><p>volatile-ttl: 从已设置过期时间的数据集( server.db[i].expires) 中挑选将要过期的数据淘汰。 </p><p>volatile-random: 从已设置过期时间的数据集( server.db[i].expires) 中任意选择数据淘汰。 </p><p>allkeys-lru:从数据集( server.db[i].dict)中挑选最近最少使用的数据淘汰。 </p><p>allkeys-random: 从数据集( server.db[i].dict) 中任意选择数据淘汰。 </p><p>no-enviction( 驱逐) : 禁止驱逐数据。 </p><p><br></p><p>注意这里的 6 种机制,volatile 和 allkeys 规定了是对已设置过期时间的数据集淘汰数据还是从全部数据集淘汰数据, 后面的 lru、ttl 以及 random 是三 </p><p>种不同的淘汰策略, 再加上一种 no-enviction 永不回收的策略。 </p><p>使用策略规则: </p><p>1、 如果数据呈现幂律分布,也就是一部分数据访问频率高,一部分数据访问频率低, 则使用 allkeys-lru。 </p><p>2、 如果数据呈现平等分布, 也就是所有的数据访问频率都相同, 则使用 allkeys-random。</p>
-
下一篇
简要说一下 Redis 的过期策略和内存淘汰机制
简要说一下 Redis 的过期策略和内存淘汰机制
相关文章
- 请列出与PHP相关的缓存机制及其优缺点。
- PHP中如何进行单元测试以及如何在开发过程中保证代码质量?
- 请解释一下PHP中的MVC模式是如何工作的?
- 在PHP中,Magic Method都有哪些,并举例说明它们的作用?
- 如何在Golang中进行并发编程?
- 请解释什么是defer语句,以及它有什么作用?
- 聊一下高并发和高性能的区别和联系?
- 请解释下PHP中会话(session)和Cookie(cookie)的作用。
- 请提供至少三个通过PHP实现的网站性能优化技巧。
- PHP7和PHP5的性能上有什么差别?
- 如何通过PHP来保护您的代码免受SQL注入攻击?
- PHP中常用的设计模式有哪些?
- 如何在Golang中实现单例模式?
- 请给一个例子解释一下PHP中的闭包函数是什么?
- 请描述在Golang中使用MongoDB时的最佳实践。
- PHP中如何处理文件上传和下载?
- 请问PHP中如何实现多线程?
- 请谈谈您对PHP的垃圾回收机制的了解及实践。
- 请解释HTTP的基本概念,以及在Golang中如何使用HTTP?
- 请举例说明PHP中如何处理异常?
微信收款码
支付宝收款码