Redis 的数据过期策略主要有两种:
-
主动过期策略:Redis 会在设置 key 的时候,同时设置一个过期时间,当 key 的过期时间到达时,Redis 会自动将该 key 删除。这种过期策略是主动的,因为 Redis 会定期检查所有的 key,如果发现某个 key 已经过期,则会将其删除。这种策略可以通过 EXPIRE 和 TTL 命令来设置和查询 key 的过期时间。
-
惰性过期策略:Redis 会在每次获取 key 的时候,检查该 key 是否过期,如果过期则将其删除。这种过期策略是惰性的,因为 Redis 不会主动检查 key 是否过期,而是在获取 key 的时候才会检查。这种策略可以确保 Redis 的内存使用率最大化,因为只有在需要时才会删除过期的 key。
需要注意的是,Redis 的过期策略是近似过期策略,即 Redis 不保证 key 在过期时间到达后立即被删除。这是因为 Redis 会以一定的频率检查过期的 key,而不是每个 key 的过期时间到达时立即删除,因此可能会有一定的时间窗口,使得某些 key 在过期时间到达后仍然存在于 Redis 中。