Redis内存管理(内存溢出后的淘汰or驱逐策略)

设置最大使用内存maxmemory

  • 通过redis.conf设置maxmemory
  • 通过redis-cli中设置:config set maxmemory 1mb,设置为1mb
  • 32位最大3GB,64位maxmemory为0时表示无限制
  • 通过CONFIG GET maxmemory查看
  • 可通过设置最大使用内存来进行测试驱逐策略

LRU

  • Less Recently Used 最近最少使用算法

Redis中的驱逐策略

  • 配置项为:maxmemory-policy,通过CONFIG GET maxmemory-policy可查看
  • 具体有以下几种驱逐策略
    • noeviction
      • 默认策略
      • 不驱逐
      • 当没有足够的内存给Redis使用时,执行写命令时会报一个异常:redis.exceptions.ResponseError,OOM command not allowed when used memory > ‘maxmemory’
    • volatile-lru
      • 对存在expire的key,执行lru淘汰策略(驱逐最近最少使用的数据)
      • 如果没有存在expire的key,则在内存不够时执行写命令时也会报一个异常:redis.exceptions.ResponseError,OOM command not allowed when used memory > ‘maxmemory’,同noeviction policy
    • allkeys-lru
      • 针对所有key执行lru
      • 没办法限制些算法针对某些key去删除
      • 如果你的应用需要持久化一些数据,请不要使用allkeys-lru策略
    • volatile-random
      • 对存在expire的key,随机选择驱逐某个key
    • allkeys-random
      • 针对所有key,随机选择驱逐某个key
    • volatile-ttl
      • 对存在expire的key中,优先驱逐ttl值最小的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值