应用启动:OOM command not allowed when used memory > ‘maxmemory‘

问题描述

应用启动的时候出现报错:OOM command not allowed when used memory > ‘maxmemory‘
在这里插入图片描述
根据报错信息,应该是redis内存不够导致的异常。

查看缓存淘汰策略及内存使用:
在这里插入图片描述

设置缓存淘汰策略

Redis缓存淘汰策略是指在Redis中,当内存空间不足时,如何选择需要被淘汰(删除)的缓存数据。Redis提供了多种缓存淘汰策略,以下是其中几种常见的策略:

  1. LRU(Least Recently Used):选择最近最少使用的数据进行淘汰。
  2. LFU(Least Frequently Used):选择最不经常使用的数据进行淘汰。
  3. Random:随机选择要淘汰的数据。
  4. TTL(Time To Live):根据数据的存活时间,选择最早过期的数据进行淘汰。

Maxmemory-policy:根据设置的最大内存限制和数据的优先级,选择要淘汰的数据。
这些策略可以通过Redis配置文件中的"maxmemory-policy"参数进行设置。根据具体的使用场景和需求,选择适合的淘汰策略可以提高缓存的效率和性能。

设置maxmemory-polic

maxmemory-policy参数可以设置以下值来选择缓存淘汰策略:

  1. noeviction:当内存不足以容纳新写入数据时,不进行缓存淘汰,新写入操作会报错。
  2. allkeys-lru:基于LRU算法,在所有的键中选择最近最少使用的数据进行淘汰。
  3. allkeys-lfu:基于LFU算法,在所有的键中选择最不经常使用的数据进行淘汰。
  4. allkeys-random:随机选择要淘汰的数据。
  5. volatile-lru:基于LRU算法,在设置了过期时间的键中选择最近最少使用的数据进行淘汰。
  6. volatile-lfu:基于LFU算法,在设置了过期时间的键中选择最不经常使用的数据进行淘汰。
  7. volatile-random:在设置了过期时间的键中随机选择要淘汰的数据。
  8. volatile-ttl:根据键的剩余存活时间(TTL)进行淘汰,越早过期的数据优先被淘汰。

在此项目中我使用了volatile-lru策略。然后调整了maxmemory值,扩大了redis内存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hi wei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值