redis的内存管理之MAXMEMORY POLICY

redis的内存管理之MAXMEMORY POLICY

redis的配置文件中可以使用maxmory参数指定最大使用的内存大小,e.g. maxmemory 1GB 关于使用的单位说明如下:

# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes

maxmemory policy指的是当使用的内存超过设置的maxmemory时,redis如何选择应该从内存中移除的对象。redis提供了6种决策方式:
  1. volatile-lru:使用lru算法,移除已过期的key;
  2. allkeys-lru:对所有的key使用lru算法;
  3. volatile-random:随机移除已过期的key;
  4. allkeys-random:随机移除所有的key;
  5. volatile-ttl:移除最近过期时间的key;
  6. noeviction:不移除key,当写入的时候返回错误

可以通过在配置文件中设置maxmemory-policy参数来指定使用的决策,redis默认使用的是noeviction.

推荐阅读