Redis的數據類型以及每種數據類型的使用場景

人就是很奇怪的動物,很簡單的問題往往大家都容易忽略,當我們在使用分佈式緩存Redis的時候,一個最簡單的問題往往被人忽略,Redis的數據類型以及每種數據類型的使用場景是什麼?

是不是覺得這個問題很基礎?我也這麼覺得。然而根據調查經驗發現,至少百分之八十的人答不上這個問題。

基本上,一個合格的程序員,五種類型都會用到。

1.String

這個沒啥好說的,最常規的 set/get 操作,Value 可以是 String 也可以是數字。一般做一些複雜的計數功能的緩存。

2.Hash

這裏 Value 存放的是結構化的對象,比較方便的就是操作其中的某個字段。

我在做單點登錄的時候,就是用這種數據結構存儲用戶信息,以 CookieId 作爲 Key,設置 30 分鐘爲緩存過期時間,能很好的模擬出類似 Session 的效果。

3.List

使用 List 的數據結構,可以做簡單的消息隊列的功能。另外還有一個就是,可以利用 lrange 命令,做基於 Redis 的分頁功能,性能極佳,用戶體驗好。

4.Set

因爲 Set 堆放的是一堆不重複值的集合。所以可以做全局去重的功能。爲什麼不用 JVM 自帶的 Set 進行去重?

因爲我們的系統一般都是集羣部署,使用 JVM 自帶的 Set,比較麻煩,難道爲了一個做一個全局去重,再起一個公共服務,太麻煩了。

另外,就是利用交集、並集、差集等操作,可以計算共同喜好,全部的喜好,自己獨有的喜好等功能。

5.Sorted Set

Sorted Set多了一個權重參數 Score,集合中的元素能夠按 Score 進行排列。

可以做排行榜應用,取 TOP N 操作。Sorted Set 可以用來做延時任務。最後一個應用就是可以做範圍查找。

如果你對Redis這一塊有什麼深入的研究,歡迎來華爲雲官方論壇發帖,一起探討一下,也可以到華爲雲幫助中心,看看我們詳細的使用操作說明書吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章