欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

教你如何估算redis使用的内存

程序员文章站 2022-07-06 22:29:55
...

我的redis是4.0版本的

教你如何估算redis使用的内存

首先是一个空的redis的在机器中的内存使用情况,这个根据机器不同而定

教你如何估算redis使用的内存

在这里我们设置一个值

set name xiaoming

name的长度为4,xiaoming长度为8

每个dictEntry占据的空间包括:

  1. 一个dictEntry,24字节,jemalloc会分配32字节的内存块

  2. 一个key,4字节,所以SDS(key)需要4+9=13个字节,jemalloc会分配16字节的内存块

  3. 一个redisObject,16字节,jemalloc会分配16字节的内存块

  4. 一个value,8字节,所以SDS(value)需要8+9=17个字节,jemalloc会分配32字节的内存块

  5. 综上,一个dictEntry需要32+32+16+32=112个字节。


bucket空间:bucket数组的大小为大于1的最小的2^n,是2;每个bucket元素为8字节(因为64位系统中指针大小为8字节)。


因此,可以估算出这90000个键值对占据的内存大小为:112 + 16 = 128。

我们来查看结果

教你如何估算redis使用的内存


答案是112,这里是一个设置一个值的结果答案还不是很准确,明天继续测试,大量值的结果
相关标签: redis 内存