集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

学习文章

当前位置:首页 > >学习文章 > >

Redis内存碎片是什么

发布时间: 2023-04-19 16:03:55

操作系统中剩余的空间总量是足够的,但是当请求一个N字节的连续地址块时,剩余的内存空间中没有大小为N字节的连续空间,所以这些剩余的内存空间中小于N字节的连续内存空间就是内存碎片。​

Redis内存碎片是如何形成的?

内部原因:

内存分配器的分配策略决定操作系统无法做到“按需分配”。

Redis使用libc、jemalloc、tcmalloc多种内存分配器来分配内存,默认使用jemalloc。
内存分配器是按照固定大小来分配内存空间,不是完全按照应用程序申请的内存大小来分配。
以jemalloc为例,是按照一系列固定的大小划分内存空间,例如8字节、16字节、32字节、...、2KB、4KB等。当程序申请的内存最接近某个固定值时,jemalloc就会给它分配相应大小的空间。

外部原因:

键值对大小不一样,并且键值对可以被修改和删除。

Redis申请内存空间分配时,对于大小不一的内存空间需求,内存分配器按照固定大小分配内存空间,分配的内存空间一般都会比申请的内存空间大一些,这会产生一定的内存碎片。
键值对会被修改和删除,会导致空间的扩容和释放。

上一篇: Redis sentinel机制

下一篇: python数字类型有哪几种

十五年老品牌
微信咨询:togogoi 咨询电话:18922156670 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!