volatile-lru
时间: 2023-09-18 12:07:01 浏览: 71
`volatile-lru` 是 Redis 的一种淘汰策略之一,它用于在内存使用达到配置的最大限制时,选择最近最少使用的带有过期时间的键值对进行删除,以释放内存空间。
具体来说,当 Redis 的内存使用达到配置的最大限制时,它会检查带有过期时间的键值对,并选择最近最少使用的键值对进行删除。这意味着那些最近很少被访问的带有过期时间的键值对会被淘汰,以便为新的键值对腾出空间。
需要注意的是,`volatile-lru` 策略只会选择过期时间设置了的键值对进行淘汰,而不会删除未设置过期时间的键值对。这样可以确保只有那些不再需要的数据被删除,而保留其他重要数据。
你可以通过在 Redis 配置文件或者通过命令行参数中设置 `maxmemory-policy` 参数为 `volatile-lru` 来启用该淘汰策略。例如:
```
maxmemory-policy volatile-lru```
这样,当 Redis 的内存使用达到最大限制时,就会自动触发 `volatile-lru` 策略进行淘汰操作。
相关问题
redis maxmemory-policy
Redis 的 maxmemory-policy 是用于设置在达到最大内存限制时,Redis 该如何处理新的写入请求。具体来说,它决定了 Redis 采用何种策略来释放内存。
常用的策略包括:
1. volatile-lru:从已设置过期时间的键中,选择最近最少使用的键进行删除。
2. volatile-ttl:从已设置过期时间的键中,选择剩余时间最短的键进行删除。
3. volatile-random:从已设置过期时间的键中,随机选择一个进行删除。
4. allkeys-lru:从所有的键中,选择最近最少使用的键进行删除。
5. allkeys-random:从所有的键中,随机选择一个进行删除。
6. noeviction:不删除任何键,只返回错误信息。
需要注意的是,maxmemory-policy 只有在 maxmemory 参数设置了合理值时才会生效。
redis maxmemory-policy所有配置
Redis 的 maxmemory-policy 配置用于指定 Redis 内存达到最大限制后的淘汰策略。以下是 Redis 支持的 maxmemory-policy 配置:
- noeviction:当 Redis 内存达到最大限制时,不会进行淘汰,任何写操作都会返回错误。
- allkeys-lru:当 Redis 内存达到最大限制时,使用 LRU 算法淘汰键空间中最近最少使用的键(包括所有数据类型的键)。
- volatile-lru:当 Redis 内存达到最大限制时,使用 LRU 算法淘汰过期键和未设置持久化的键中最近最少使用的键。
- allkeys-random:当 Redis 内存达到最大限制时,随机淘汰键空间中的任意键(包括所有数据类型的键)。
- volatile-random:当 Redis 内存达到最大限制时,随机淘汰过期键和未设置持久化的键中的任意键。
- volatile-ttl:当 Redis 内存达到最大限制时,淘汰过期键和未设置持久化的键中 TTL 值最小的键。如果没有设置 TTL 值的键,则视为 TTL 值为 0,会被立即淘汰。
可以通过以下命令来设置 maxmemory-policy 配置:
```
CONFIG SET maxmemory-policy <policy-name>
```
其中,<policy-name> 为上述所列出的任意一种淘汰策略名称。