首页 > 数据库 >Redis 内存占满

Redis 内存占满

时间:2022-08-19 10:25:50浏览次数:88  
标签:used Redis maxmemory redis 内存 human memory



1.案例

redis 内存占用满了

错误提示:OOM command not allowed when used memory > ‘maxmemory’


2.排查步骤

  1. 确定哪台redis服务器
  2. 使用 set 命令随便设置值,查看是否成功
  3. 使用 info memory 命令查看内存情况
  4. 修改redis存储策略

3. info memory 注释

127.0.0.1:6379> info memory
# Memory
used_memory:1038944
used_memory_human:1014.59K  // 已用内存
used_memory_rss:745472
used_memory_rss_human:728.00K   // 系统给redis分配的内存(即常驻内存)
used_memory_peak:51710336
used_memory_peak_human:49.31M
used_memory_peak_perc:2.01%
used_memory_overhead:1030702
used_memory_startup:981072
used_memory_dataset:8242
used_memory_dataset_perc:14.24%
total_system_memory:17179869184
total_system_memory_human:16.00G
used_memory_lua:54272
used_memory_lua_human:53.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:0.72   // mem_fragmentation_ratio=used_memory_rss/used_memory比例,一般情况下,used_memory_rss略高于used_memory,当内存碎片较多时,则mem_fragmentation_ratio会较大,可以反映内存碎片是否很多
mem_allocator:libc
active_defrag_running:0
lazyfree_pending_objects:0

4.存储策略

	1.volatile-lru(least recently used):最近最少使用算法,从设置了过期时间的键中选择空转时间最长的键值对清除掉;

    2.volatile-lfu(least frequently used):最近最不经常使用算法,从设置了过期时间的键中选择某段时间之内使用频次最小的键值对清除掉;

    3.volatile-ttl:从设置了过期时间的键中选择过期时间最早的键值对清除;

    4.volatile-random:从设置了过期时间的键中,随机选择键进行清除;

    5.allkeys-lru:最近最少使用算法,从所有的键中选择空转时间最长的键值对清除;

    6.allkeys-lfu:最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最少的键值对清除;

    7.allkeys-random:所有的键中,随机选择键进行删除;

    8.noeviction:不做任何的清理工作,在redis的内存超过限制之后,所有的写入操作都会返回错误;但是读操作都能正常的进行;

5.解决

  1. 命令设置过期时间

  2. 增加redis内存,修改redis.conf

maxmemory 2gb
  1. 修改redis存储策略
maxmemory-policy volatile-lru
  1. 非必要不使用redis存数据

4.相关推荐

在线redis测试:在线 reids

标签:used,Redis,maxmemory,redis,内存,human,memory
From: https://www.cnblogs.com/linsonga/p/16601083.html

相关文章

  • docker compose搭建redis7.0.4高可用一主二从三哨兵集群并整合SpringBoot【图文完整版
    一、前言redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群。redis有两种高可用的方案:HighavailabilitywithRedisSen......
  • 深入理解Redis 数据结构—字典
    字典,又称为符号表、关联数组或映射,是一种用于保存键值对的抽象数据结构。在字典中,一个键可以和一个值进行关联,这些关联的键和值称为键值对。键值对中键是唯一的,我们可以......
  • Redis学习(2)set和zset
    set集合底层就是一个hash表,只不过保存的值是null。添加删除saddkeyelementelement...用element等创建一个setsmemberskey显示key中成员sismemberskeyelemen......
  • 指针在内存所占的大小
    sizeof的特点:printf(”%d“,int);printf(”%d“,float);printf(”%d“,double);其结果为444这就是面试的时候问你,指针在内存中占多少个字节?这就是个问题不是简单的2,4,甚至8个字节回答:......
  • Java内存分析相关工具
    1、jps工具jps(JavaVirtualMachineProcessStatusTool)是JDK提供的一个可以列出正在运行的Java虚拟机的进程信息的命令行工具,它可以显示Java虚拟机进程的执行主类(Ma......
  • 【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostExce
    问题描述在Java项目中,使用Redisson作为连接Redis的客户端,间歇性的出现了DNSMonitorthrowable错误。DNSMonitorthrowable="java.net.UnknownHostException:failedto......
  • 计算机内存容量单位
    计算机内存容量单位1、什么是计算机的内存容量单位:计算机的内存容量通常是指随机存储器(RAM)的容量,是内存条的关键性参数。内存容量以MB作为单内容存量位,可以......
  • redis-golang strings 操作
    本文来自于  github.com/go-redis/redis/v9的自带的测试代码commands_test1、Append(ctxcontext.Context,key,valuestring)//如果不存在key,就将keyval......
  • Redis - Persistence
    • RDB(RedisDatabase):TheRDBpersistenceperformspoint-in-timesnapshotsofyourdatasetatspecifiedintervals.• AOF(AppendOnlyFile):TheAOFpersis......
  • Redis不同版本集群搭建
    redis集群搭建官方网址:https://redis.io/download/下载下来的为.tar.gz扩展名的源码包。一、redis5.0版本之前集群搭建需要redis-trib.rb工具来完成集群的创建,redis-tr......