我的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。
我們來查看結果