我的redis是4.0版
首先是空redis在机器上的内存使用情况,这取决于机器
在此设定值
设置名称小名称的长度为4,小名称的长度为8
每个dictEntry占用的空间如下:
dictEntry、24字节和jemalloc分配32字节的内存块
因为是key,4字节,所以SDS(key )需要4 ) 4 9=13字节,jemalloc分配16字节的内存块
redisObject、16字节和jemalloc分配16字节的内存块
1个value,8字节,所以SDS(value )需要8 ) 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。
看看结果吧
答案是112。 这里是设定值的结果,答案还不正确。 明天也继续测试,是大量数值的结果