TTL、LRU、LFU英文全称及释义
以下是 TTL、LRU 和 LFU 的英文全称及其简要解释:
1. TTL
- 全称:Time To Live(存活时间)
- 含义:
表示数据在缓存或存储中的有效存活时间,过期后自动删除。- Redis 示例:
SET key value EX 60
(设置键 60 秒后过期)。 - 应用场景:缓存失效、网络数据包跳数限制(如 IP 协议中的 TTL)。
- Redis 示例:
2. LRU
- 全称:Least Recently Used(最近最少使用)
- 含义:
一种缓存淘汰算法,优先移除最久未被访问的数据。- Redis 示例:
maxmemory-policy allkeys-lru
(淘汰全体键中 LRU 的键)。 - 应用场景:热点数据缓存(如网页缓存、数据库查询缓存)。
- Redis 示例:
3. LFU
- 全称:Least Frequently Used(最不经常使用)
- 含义:
一种缓存淘汰算法,优先移除访问频率最低的数据。- Redis 示例:
maxmemory-policy allkeys-lfu
(淘汰全体键中 LFU 的键)。 - 应用场景:长期冷数据清理(如广告推荐系统中的低频数据)。
- Redis 示例:
三者的核心区别
缩写 | 全称 | 淘汰依据 | 适用场景 |
---|---|---|---|
TTL | Time To Live | 过期时间 | 临时数据(如会话缓存) |
LRU | Least Recently Used | 最近访问时间 | 热点数据优先保留 |
LFU | Least Frequently Used | 历史访问频率 | 长期冷数据优先清理 |
附:技术扩展
- LRU 实现:通常用双向链表 + 哈希表(如 Java 的
LinkedHashMap
)。 - LFU 优化:Redis 4.0+ 使用近似 LFU 算法(通过频率计数器和衰减机制)。
- TTL 精度:Redis 的 TTL 精度为毫秒级,但惰性删除可能导致实际释放延迟。