一.dict
主要有兩個問題:
1.雜湊衝突,解決辦法是拉鍊法
typedef structdictentry v;
struct dictentry *next;
} dictentry;
next欄位向後拉鍊
2.擴容時候的rehash,做類似於copy on write
typedef structdict dict;
ht[0] 是儲存了沒擴容時候的資料,ht[1]儲存擴容以後的資料。如果在需要擴容的時候,任何對雜湊表的操作都會從ht[0]中找到乙個key rehash以後放到ht[1],逐漸把ht[0]中的資料放到ht[1],當ht[0]中全部rehash完以後,釋放空間,ht[0]指向ht[1]。
Redis資料結構
字典 dict 是redis裡最核心的資料結構,正如其全稱remote dictionary service所說,redis其實就是乙個字典服務,字典以key value的形式呈現給使用者,key是簡單的字串,而value可以是各種資料結構,比如字串 string 鍊錶 list 集合 set 排序...
Redis 資料結構
最近接觸到了redis的使用,借這個機會深入的了解一下redis的實現和設計原理。下面先介紹一下redis底層所用到的資料結構。redis的實現幾乎都是基於下面的幾個資料結構之上的。struct sdshdr struct listnode struct list struct dictentry ...
redis 資料結構
今天學習了redis的列表型別 lpush ltrim lrange lpush mylist content ltrim 0,99 lrange 0,1 lrange 兩個引數 分別代表第乙個元素和最後乙個元素 redis的列表型別,可以用來做訊息佇列 使用乙個程序 用lpush命名作為生產者 使...