Redis基本資料型別的記憶體編碼 字串

2021-10-23 18:19:45 字數 460 閱讀 2685

三種形式:int(8個位元組的長整型)、embstr(<=44位元組字串)、raw(>44位元組字串)

其中embstr和raw都是用redisobject和sds儲存資料,根據radis記憶體分配策略,jemalloc分配大於48,小於64個

位元組的情況會統一分配64個位元組,所以embstr使用這一特性,將redisobject和資料存放在一起,redisobject物件佔16個位元組,sds剩餘48個位元組

3.2之後,sds結構為4+字元長度,所以embstr儲存小於等於44個位元組的資料

(3.2之前,sds為9(\0+len+free)+字串長度,長度為39).

embstr長度增加需要重新分配記憶體時,需要重新分配redisobject和sds,所以embstr為唯讀。

embstr分配一次記憶體空間,redisobject和sds在一起

raw分配兩次, 需要分配redisobject和sds。

redis基本資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string key value型 0.1 6379 set name haha ok127.0 0.1 6379 get name haha hash 是乙個鍵...

Redis基本資料型別

redis是乙個key value形式的nosql儲存系統,redis的所有操作都是原子性的。string是二進位制安全的,可以儲存檔案等,也可以利用incr用作計數統計。set key value get key incr key list型別是乙個雙向鍊錶結構,亦可實現乙個佇列。lpush ke...

Redis基本資料型別

1,string 是redis最基本的資料型別,乙個key對應乙個value,是二進位制安全的。可以包含任何資料,比如或者物件 要序列號 key最大512m。2,hash 這是乙個鍵 值對集合,特別適合於儲存物件 hset 一次設定乙個值,hget 一次得到乙個值 127.0.0.1 6379 hs...