发布时间: 2023-04-19 16:03:55
操作系统中剩余的空间总量是足够的,但是当请求一个N字节的连续地址块时,剩余的内存空间中没有大小为N字节的连续空间,所以这些剩余的内存空间中小于N字节的连续内存空间就是内存碎片。
内部原因:
内存分配器的分配策略决定操作系统无法做到“按需分配”。
Redis使用libc、jemalloc、tcmalloc多种内存分配器来分配内存,默认使用jemalloc。外部原因:
键值对大小不一样,并且键值对可以被修改和删除。
Redis申请内存空间分配时,对于大小不一的内存空间需求,内存分配器按照固定大小分配内存空间,分配的内存空间一般都会比申请的内存空间大一些,这会产生一定的内存碎片。上一篇: Redis sentinel机制
下一篇: python数字类型有哪几种