云計算
人就是很奇怪的動物,很簡單的問題往往大家都容易忽略,當我們在使用分布式緩存Redis的時候,一個最簡單的問題往往被人忽略,Redis的數(shù)據(jù)類型以及每種數(shù)據(jù)類型的使用場景是什么?
是不是覺得這個問題很基礎?我也這么覺得。然而根據(jù)調(diào)查經(jīng)驗發(fā)現(xiàn),至少百分之八十的人答不上這個問題。
基本上,一個合格的程序員,五種類型都會用到。
1.String這個沒啥好說的,最常規(guī)的 set/get 操作,Value 可以是 String 也可以是數(shù)字。一般做一些復雜的計數(shù)功能的緩存。
2.Hash這里 Value 存放的是結(jié)構(gòu)化的對象,比較方便的就是操作其中的某個字段。
我在做單點登錄的時候,就是用這種數(shù)據(jù)結(jié)構(gòu)存儲用戶信息,以 CookieId 作為 Key,設置 30 分鐘為緩存過期時間,能很好的模擬出類似 Session 的效果。
3.List使用 List 的數(shù)據(jù)結(jié)構(gòu),可以做簡單的消息隊列的功能。另外還有一個就是,可以利用 lrange 命令,做基于 Redis 的分頁功能,性能極佳,用戶體驗好。
4.Set因為 Set 堆放的是一堆不重復值的集合。所以可以做全局去重的功能。為什么不用 JVM 自帶的 Set 進行去重?
因為我們的系統(tǒng)一般都是集群部署,使用 JVM 自帶的 Set,比較麻煩,難道為了一個做一個全局去重,再起一個公共服務,太麻煩了。
另外,就是利用交集、并集、差集等操作,可以計算共同喜好,全部的喜好,自己獨有的喜好等功能。
5.Sorted SetSorted Set多了一個權(quán)重參數(shù) Score,集合中的元素能夠按 Score 進行排列。
可以做排行榜應用,取 TOP N 操作。Sorted Set 可以用來做延時任務。最后一個應用就是可以做范圍查找。
如果你對Redis這一塊有什么深入的研究,歡迎來華為云官方論壇發(fā)帖,一起探討一下,也可以到華為云幫助中心,看看我們詳細的使用操作說明書吧