• Redis: OOM command not allowed when used memory > ‘maxmemory’


    报错:

    OOM command not allowed when used memory > 'maxmemory'

    原因

    内存已满,不允许再存数据了,可以通过redis-cli 查看redis的具体信息

    查看内存信息命令

    127.0.0.1:6379> info memory
    
    # Memory
    used_memory:4120248
    used_memory_human:3.93M
    used_memory_rss:11509760
    used_memory_peak:1977983104
    used_memory_peak_human:1.84G
    used_memory_lua:36864
    mem_fragmentation_ratio:2.79
    mem_allocator:jemalloc-3.6.0
    
    说明

    used_memory_human 表示已用内存
    used_memory_rss 表示系统给redis分配的内存(即常驻内存)
    mem_fragmentation_ratio=used_memory_rss/used_memory比例,一般情况下,used_memory_rss略高于used_memory,当内存碎片较多时,则mem_fragmentation_ratio会较大,可以反映内存碎片是否很多

    解决

    注:如修改了配置文件需重启redis

    1. 增加redis内存,修改redis.conf
    maxmemory 2gb
    
    1. 修改redis存储策略

    默认的redis设置是非常保守的,即内存超限后就不在存储,可以把策略修改为LRU算法(最近最少使用算法)——新存储的信息会替换掉旧的信息,从而不会是内存越线,修改redis.conf

    maxmemory-policy volatile-lru
    
    1. 少往reids存数据

    是否有必要把这么多数据存入redis?

    自知者不怨人,知命者不怨天。
  • 相关阅读:
    CrackRTFwp 顺便讲讲如何在pe文件中看资源
    开启驱动生涯
    hgame week2 week3
    hgamefinal re peko-chain!
    docker化hbase并使用外部zookeeper
    docker化canal-adapter
    脚本
    ansible模块-user
    esxi克隆虚拟机
    confluence配置搭建
  • 原文地址:https://www.cnblogs.com/liqingbo/p/14989151.html
Copyright © 2020-2023  润新知