哈希表(REDIS_HASH)

哈希表(REDIS_HASH)默認是用ziplist(REDIS_ENCODING_ZIPLIST)對象(redisObject)來保存數據的,只有key或value的長度超過server.hash_max_ziplist_value(默認64);或者ziplist存儲的對象(entry)超過了server.hash_max_ziplist_entries(默認512)時,就對這個ziplist對象進行轉換,把它轉成(接口:hashTypeConvert(o, REDIS_ENCODING_HT))字典dict來保存key-value(REDIS_ENCODING_HT).

1.  用ziplist(REDIS_ENCODING_ZIPLIST)作爲hash表的底層數據結構的內存結構如下圖: 在ziplist中用兩個連續的entry來保存一個hash對(key-value)


2. 用dict(REDIS_ENCODING_HT)作爲hash表的底層數據結構的內存結構如下圖: 字典中的key是字符串;而字典中的value現在是redisObject對象指針;創建這個字典時用的type是hashDictType;即value可以存儲redis的任何對象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章