redis 常見的數(shù)據(jù)結(jié)構(gòu)類型主要包含五種:String巡社、Hash、List、Set红选、Sorted Set
String
String 數(shù)據(jù)結(jié)構(gòu)是最簡單的 Key->Value 類型弛饭,value 可以是 String冕末,也可以是 數(shù)字。
String 常見的應(yīng)用場景:1.常用的 key->value 緩存應(yīng)用 2.常規(guī)的計數(shù)器:微博數(shù)侣颂、粉絲數(shù)
Hash
Hash 是 String 類型的 Filed 和 Value 映射表档桃,比較適合存儲對象,一般我們常用 Hash 結(jié)構(gòu)存儲憔晒、讀取藻肄、修改用戶或者商品的屬性信息
List
List 是一種鏈表結(jié)構(gòu),而且是一種雙鏈表拒担,提供了反向查找和遍歷的操作嘹屯,List 是 redis 中最重要且常用的數(shù)據(jù)結(jié)構(gòu),List 的應(yīng)用場景比較多澎蛛,比如:微博關(guān)注列表抚垄、粉絲列表,我們還可以通過 List 結(jié)構(gòu)實現(xiàn)異步隊列。另外還可以通過 List 的 lrange 命令呆馁,從某個元素開始獲取指定長度的數(shù)據(jù)桐经,實現(xiàn)基本的分頁查詢工具
Set
Set 是一種集合,Set 對外提供的功能和 List 類似都是一種列表功能浙滤,不同的是 Set 可以自動去重
如果我們想要存儲一個列表數(shù)據(jù)阴挣,并且希望數(shù)據(jù)不重復(fù)則可以選擇使用 Set 數(shù)據(jù)結(jié)構(gòu),另外 Set 還提供了一個判斷成員是否屬于某個集合方法纺腊,這是 List 所不能實現(xiàn)的畔咧,可以使用 Set 求并集、差集揖膜、交集
在微博應(yīng)用中誓沸,我們可以將一個用戶的關(guān)注、該用戶的粉絲或者愛好放到不同的 Set 中壹粟,從而實現(xiàn)共同好友拜隧、共同愛好以及共同關(guān)注的功能
Sorted Set
Sorted Set 相比較于 Set 引入了一個權(quán)重參數(shù) Score,集合中的元素可以根據(jù) Score 進行排序趁仙,如洪添,使用 Set 結(jié)構(gòu)實現(xiàn)優(yōu)先級隊列、延時隊列等雀费,在直播系統(tǒng)中通過 Sorted Set 實現(xiàn)刷禮物排行榜干奢、彈幕消等