Redis 資料結構

2021-09-26 09:49:56 字數 1640 閱讀 6215

string

常用命令:set,get,decr,incr,mget

string 資料結構是簡單的 key-value 型別,value 不僅可以是 string,也可以是數字。

hash

常用命令:hget,hset,hgetall

hash 是乙個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件,後續操作的時候,你可以僅僅修改這個物件中的某個字段值。 比如可以用 hash 資料結構來儲存使用者資訊,商品資訊:

key = user_123456

value =

list
常用命令:lpush,rpush,lpop,rpop,lrange

list 就是鍊錶,redis list 的應用場景非常多,也是 redis 最重要的資料結構之一,比如微博的關注列表,粉絲列表,訊息列表等功能都可以用 redis 的 list 結構來實現。

redis list 的實現為乙個雙向鍊錶,即可以支援反向查詢和遍歷,方便操作,雖然會帶來部分額外的記憶體開銷。

另外可以通過 lrange 命令,就是從某個元素開始讀取多少個元素,可以基於 list 實現分頁查詢,這個很棒的乙個功能,基於 redis 實現簡單的高效能分頁,可以做類似微博那種下拉不斷分頁的東西(一頁一頁的往下走),效能高。

set

常用命令:sadd,spop,smembers,sunion

set 對外提供的功能與 list 類似,也是乙個列表的功能,特殊之處在於 set 是可以自動排重的。

當你需要儲存乙個列表資料,又不希望出現重複資料時,set 是乙個很好的選擇,並且 set 提供了判斷某個成員是否在乙個 set 集合內的重要介面,這個也是 list 所不能提供的。可以基於 set 輕易實現交集、並集、差集等操作。

比如:在微博應用中,可以將乙個使用者所有的關注人存在乙個集合中,將其所有粉絲存在乙個集合。redis 可以非常方便的實現如共同關注、共同粉絲、共同喜好等功能。這個過程也就是求交集的過程,具體命令如下:

sinterstore key1 key2 key3     將交集存在 key1 內
sorted set
常用命令:zadd,zrange,zrem,zcard

和 set 相比,sorted set 增加了乙個權重引數 score,使得集合中的元素能夠按 score 進行有序排列。

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