讀REDIS資料結構

2021-06-26 06:01:29 字數 418 閱讀 4652

一.dict

主要有兩個問題:

1.雜湊衝突,解決辦法是拉鍊法

typedef struct

dictentry v;

struct dictentry *next;

} dictentry;

next欄位向後拉鍊

2.擴容時候的rehash,做類似於copy on write

typedef struct

dict 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命名作為生產者 使...