当redis被当做缓存来使用时,当新增数据的时候,让它自动回收旧数据是件很方便的事情。LRU是Redis唯一支持的回收算法。
Maxmemory配置
maxmemory配置是用于配置Redis存储数据时指定限制的内存大小。通过redis.conf可以设置,或者使用config set 来进行运行时的配置。
例如配置内存最大为100mb,修改redis.conf文件
maxmemory 100mb
设置maxmemory为0代表没有内存限制。当指定的内存限制达到时,需要选择不同的行为,也就是回收策略。
回收策略
该策略是在redis.conf 的maxmemory-policy配置来配置的。
- noevication: 当内存无法容纳新数据时,客户端继续尝试写入时,返回错误。
- allkeys-lru: 当内存无法容纳新数据时,尝试回收最少使用的键(LRU),使新数据有空间存放。推荐
- volatile-lru: 当内存无法容纳新数据时,尝试回收最少使用的键(LRU),但仅限于设置了过期时间的键。
- allkeys-random: 当内存无法容纳新数据时,随机回收键。
- valatile-random: 当内存无法容纳新数据时,随机回收键,但仅限于设置了过期时间的键。
- volatile-ttl: 当内存无法容纳新数据时,回收过期的键,并且优先回收存活时间(TTL)较短的键。