互联网面试宝典

您现在的位置是: 首页 > Redis

问题详情

简要说一下 Redis 的过期策略和内存淘汰机制

面试宝典 2023-06-12 Web前端开发工程师 53
Redis 的过期策略有两种,一种是惰性过期(lazy expire),也就是当一个键过期时,只有在被访问时才会被删除;另一种是定时过期(定期删除 expired),即 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 命令删除指定键,以腾出更多内存。