redis資料結構

2022-09-21 03:15:10 字數 1412 閱讀 1923

string

結構:embstr = redisobject物件頭 + sds結構;

redisobject 用於redis 資料記憶體**和記錄引用計數。sds結構包括已用空間和可用空間。

zset

壓縮列表:儲存不同長度元素的陣列,使用連續的記憶體。

帶有分數的成員自動排序,按照score增大的順序

(1)延時佇列:按照插入redis的時間排序,可以實現延時佇列,實現對訊息的延時消費。

(2)排行榜:還可以以點贊數量作為score,實現排行榜功能,對key對應的socre+1操作。

(3)  滑動視窗限流:把使用者的 id 作為 key 來定義zset ,member 和 score 都為訪問時的時間戳。我們只需統計某個 key 下在指定時間戳區間內的個數,就能得到這個使用者滑動視窗內訪問頻次,如果超過最大訪問頻次就與最小的score比較判斷是否在規定的時間內,來決定是否允許通過。

hash

壓縮列表:ziplist

hset :redis hset 命令用於設定雜湊表中的鍵值對。

hget :redis hget 命令用於返回雜湊表中指定欄位的值。

// 雜湊表名:age 鍵值對:tom=>33

127.0.0.1:6379> hset age kik 23

(integer) 1

127.0.0.1:6379> hset age kik 24

(integer) 0

127.0.0.1:6379> hget age kik

"24"

鍊錶:quicklist: quicklist是由ziplist組成的雙向鍊錶,鍊錶中的每乙個節點都以壓縮列表ziplist的結構儲存著資料,相當與乙個quicklist節點儲存的是一片資料,而不再是乙個資料。

實現消費者生產者模式

lpush age 20     //往age鍊錶中加入value :20

brpop age 60 //從age鍊錶中阻塞式取值,超時時間60s,超時時間設定為0表示永久阻塞。

lrange age 0 -1 //檢視list value數量

使用debug object *** 檢視資料使用型別

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