- 2019-02-13
-
redis内存淘汰策略
redis中可以通过参数限制内存大小,例如, 要设置 100MB 的内存限制, 可以在 redis.conf 文件中这样配置:maxmemory 100mb
将 maxmemory 设置为 0, 则表示不进行内存限制。当然, 对32位系统来说有一个隐性的限制条件: 最多 3GB 内存。
redis提供了6种淘汰策略-
volatile-lru: 从已设置过期时间的数据集(server.db[i].expire)中挑选最近最少使用的数据淘汰。
-
volatile-ttl: 从已设置过期时间的数据集(server.db[i].expire)中挑选将要过期的数据淘汰。
-
volatile-random: 从已设置过期时间的数据集(server.db[i].expire)中任意数据淘汰。
-
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰。
-
allkeys-random: 从数据集(server.db[i].dict)中挑选任意选择数据淘汰。
-
no-enviction(驱逐): 禁止驱逐数据
默认的淘汰策略是no-enviction,例如要设置allkeys-lru策略,可以在redis.conf文件中这样配置:
maxmemory-policy allkeys-lru
-