redis資料結構及使用場景

2022-07-09 09:45:14 字數 1009 閱讀 3876

string的實際應用場景比較廣泛的有:

list 是有序列表,這個還是可以玩兒出很多花樣的。

比如可以通過 lrange 命令,讀取某個閉區間內的元素,可以基於 list 實現分頁查詢,這個是很棒的乙個功能,基於 redis 實現簡單的高效能分頁,可以做類似微博那種下拉不斷分頁的東西,效能高,就一頁一頁走。

比如可以搞個簡單的訊息佇列,從 list 頭懟進去,從 list 屁股那裡弄出來。

list本身就是我們在開發過程中比較常用的資料結構了,熱點資料更不用說了。

set 是無序集合,會自動去重的那種。

直接基於 set 將系統裡需要去重的資料扔進去,自動就給去重了,如果你需要對一些資料進行快速的全域性去重,你當然也可以基於 jvm 記憶體裡的 hashset 進行去重,但是如果你的某個系統部署在多台機器上呢?得基於redis進行全域性的 set 去重。

可以基於 set 玩兒交集、並集、差集的操作,比如交集吧,我們可以把兩個人的好友列表整乙個交集,看看倆人的共同好友是誰?對吧。

反正這些場景比較多,因為對比很快,操作也簡單,兩個查詢乙個set搞定。

sorted set 是排序的 set,去重但可以排序,寫進去的時候給乙個分數,自動根據分數排序。

有序集合的使用場景與集合類似,但是set集合不是自動有序的,而sorted set可以利用分數進行成員間的排序,而且是插入時就排序好。所以當你需要乙個有序且不重複的集合列表時,就可以選擇sorted set資料結構作為選擇方案。

用sorted sets來做帶權重的佇列,比如普通資訊的score為1,重要訊息的score為2,然後工作執行緒可以選擇按score的倒序來獲取工作任務。讓重要的任務優先執行

這個是類似 map 的一種結構,這個一般就是可以將結構化的資料,比如乙個物件(前提是這個物件沒巢狀其他的物件)給快取在 redis 裡,然後每次讀寫快取的時候,可以就操作 hash 裡的某個字段。

但是這個的場景其實還是多少單一了一些,因為現在很多物件都是比較複雜的,比如你的商品物件可能裡面就包含了很多屬性,其中也有物件。我自己使用的場景用得不是那麼多。

Redis 資料結構使用場景

redis共有5種資料結構,每種的使用場景都是什麼?原來看過 redisbook 這本書,對 redis 的基本功能都已經熟悉了,從上週開始看 redis 的原始碼。目前目標是吃透 redis 的資料結構。我們都知道,在 redis 中一共有5種資料結構,那每種資料結構的使用場景都是什麼呢?下面我們...

Redis 資料結構使用場景

redis共有5種資料結構,每種的使用場景都是什麼?原來看過 redisbook 這本書,對 redis 的基本功能都已經熟悉了,從上週開始看 redis 的原始碼。目前目標是吃透 redis 的資料結構。我們都知道,在 redis 中一共有5種資料結構,那每種資料結構的使用場景都是什麼呢?下面我們...

redis資料結構運用場景

1 string 常用命令 set,get,decr,incr,mget 等。應用場景 string是最常用的一種資料型別,普通的key value儲存都可以歸為此類,這裡就不所做解釋了。實現方式 string在redis內部儲存預設就是乙個字串,被redisobject所引用,當遇到incr,de...