教你如何估算redis使用的内存
程序员文章站
2022-07-06 22:29:55
...
我的redis是4.0版本的
首先是一个空的redis的在机器中的内存使用情况,这个根据机器不同而定
在这里我们设置一个值
set name xiaoming
name的长度为4,xiaoming长度为8
每个dictEntry占据的空间包括:
一个dictEntry,24字节,jemalloc会分配32字节的内存块
一个key,4字节,所以SDS(key)需要4+9=13个字节,jemalloc会分配16字节的内存块
一个redisObject,16字节,jemalloc会分配16字节的内存块
一个value,8字节,所以SDS(value)需要8+9=17个字节,jemalloc会分配32字节的内存块
综上,一个dictEntry需要32+32+16+32=112个字节。
bucket空间:bucket数组的大小为大于1的最小的2^n,是2;每个bucket元素为8字节(因为64位系统中指针大小为8字节)。
因此,可以估算出这90000个键值对占据的内存大小为:112 + 16 = 128。
我们来查看结果