在Redis中,有两种过期删除策略可以选择:
1. 惰性删除策略(Lazy Expiration):当客户端尝试访问一个已过期的键时,Redis会检查键是否过期,如果过期则删除键。这种策略的好处是在访问键时才会触发删除操作,避免了在过期键上浪费CPU时间。不过,这也意味着过期键可能会在一段时间内保留在内存中,直到被访问并删除。
要启用惰性删除策略,只需确保`redis.conf`配置文件中的`lazyfree-lazy-eviction`选项设置为`yes`(默认值为`yes`)。
2. 定期删除策略(Volatile Expiration):Redis会每隔一段时间扫描一部分已过期键,并删除它们。这种策略通过周期性地删除过期键来确保内存中不会保留太多过期键。
定期删除策略的配置主要由两个参数控制:
- `hz`:表示每秒执行的定时器事件的数量。
- `maxmemory-samples`:指定每次定期删除操作扫描的键的最大数量。
你可以根据实际情况调整这两个参数,以达到你所需的过期删除策略。
另外,你还可以使用Redis的`EXPIRE`命令为键设置过期时间,例如:
```
EXPIRE key seconds
```
这将在指定的秒数后使键过期,并在过期后自动删除键。
总之,Redis提供了两种过期删除策略(惰性删除和定期删除),你可以根据需求选择适合的策略或者结合两种策略来使用。