首页 > 数据库 >五、Redis内存消耗

五、Redis内存消耗

时间:2023-06-08 15:23:06浏览次数:43  
标签:AOF Redis 消耗 内存 RDB 进程

从性能上来说,内存占用过高会引起Reids响应变慢

从高可用上来说,内存过大可能会会引起部分数据丢失,故障恢复变慢

Redis内存消耗主要在于其主进程消耗和子进程消耗。而主进程消耗又主要包括自身内存、对象内存、缓冲区内存、内存碎片五个方面

1、自身内存

指Redis进程自身所占用的内存,这部分内存通常很小

2、对象内存

五大对象,对象内存是Redis内存中占用最大的

3、缓冲区内存

主要的三大缓冲区,详情见下文

4、内存碎片

主要是由于操作系统的内存分配机制和Redis内存分配器的分配策略所决定的

5、子进程内存消耗

子进程内存消耗主要指执行AOF/RDB重写时Redis创建的子进程内存消耗

在执行RDB快照和AOF重写时主进程会fork出一个子进程,由子进程完成快照和重写操作,虽然使用了写时复制的技术,子进程可以不用完全复制父进程的所有物理内存,但是仍然需要复制其内存页表,在此期间如果有写入操作则需要复制出一份副本出来。因此子进程同样会消耗一部分内存,其消耗的内存量取决于RDB和AOF期间的写入命令量

 

 

标签:AOF,Redis,消耗,内存,RDB,进程
From: https://www.cnblogs.com/yogayao/p/17466587.html

相关文章

  • redis应用场景--记录文章,图文,或者视频的浏览次数
    在阅读博客文章时,你可以看到一篇文章被阅读的次数,如果使用mysql,那么在设计article表时,就必须设置一个view_count字段来记录这篇文章被阅读的次数。但这种方式相比于使用redis,并不是一种好的办法,原因在于,每次更新view_count字段的值都是一个比较费力的过程。首先,程序需要根据文......
  • redis应用场景--实现布隆过滤器
    简述布隆过滤器的实现思路:假设有一个长度为n的比特数组,bit_array,数组里的每一位都是0,对于一个url或者是其他数据,使用hash算法计算出url的散列值,这个散列值当然是一个整数,暂且命名为index,index=index%n,确保index的值小于n,查看bit_array[index]是否等于1,如果等于1,表示该url已......
  • org.springframework.data.redis.RedisSystemException: Redis exception; nested exc
    springBoot+redis.程序隔一段时间会莫名其妙的报Redis的错误.报错如下:org.springframework.data.redis.RedisSystemException:Redisexception;nestedexceptionisio.lettuce.core.RedisException:java.io.IOException:Connectionresetbypeer百度得知说:是因为re......
  • redis应用场景--游戏排行榜
    有序集合也是集合,不同之处在于,集合里的元素可以附带这个分数,元素不能重复,但是分数可以重复,不仅如此,还可以根据分数进行排序。很多游戏都有玩家得分的排行榜,这个排行榜随时处于变动中。游戏有很多玩家,可以设计一张表,记录每一个玩家的分数,并根据玩家新一局的分数来更新这张表,当需......
  • 在 macOS Catalina 10.15 搭建 PHP 开发环境包括PHP的redis扩展
    2019年10月8日,苹果公司正式发布了新一代macOS,版本为Catalina(11.15)。macOSCatalina预装了Ruby(2.6.3)、PHP(7.3.9)、Perl(5.18.4)、Python(2.7.16)等常用的脚本语言,以及Apache(2.4.41)Web服务器。需要注意的是,在新版本中,zsh已取代bash成为新版操作系统中的......
  • redis 基本数据类型
     所有数据都以唯一key字符串作为名称,而value只是数据类型的差异。所以,针对key的命令都是通用的。方便演示,采用docker镜像,可以选择redis:latest镜像,这里我选择了带布隆过虑器的redis镜像。 dockerrun-p6379:6379--nameredis-dredislabs/rebloom:latestd......
  • redis应用场景--缓存过期时间
    缓存可以有效的提高关键数据的获取速度,使得不必要每次查询数据库,避免了数据库被击穿。主动更新:需要知道这份数据的实效时间点,然后在那个时间点到来时重新更新数据,可能是查询数据库,也可能是访问第三接口,在获得数据之后,更新redis缓存。被动更新:程序每次都去redis获取数......
  • Python+Redis学习笔记
    首先,通过pip来安装操作redis的相关包,pipinstallredis然后导入我们要使用的模块,formredis.ClientimportRedis然后,通过docker启动redis,fromredis.clientimportRedisr=Redis(host="0.0.0.0",port=6379,db=0,password="")#r.set("kol_height",187)res=r.......
  • Unity 3D 的NEW (堆内存)
    用容器装在AWEKENEW运行时NEW会导致分配内存时界面卡住new才刷新程序帧AWEKE是程序启动时还没走完第一帧的开头执行AWEKE里面的代码常量也在Aweke初始化赋值                                  ......
  • Redis Cluster集群搭建
    rediscluster架构一个RedisCluster由多个Redis节点构成,不同节点组服务的数据没有交集,也就是每个一节点组对应数据sharding的一个分片.节点组内部分为主备两类节点,对应master和slave节点.两者数据实时一致,通过异步化的主备复制机制来保证.一个节点组有且只有一个......