Redis的數(shù)據(jù)類型有哪些?有五種常用數(shù)據(jù)類型:String、Hash、Set、List、SortedSet。以及三種特殊的數(shù)據(jù)類型:Bitmap、HyperLogLog、Geospatial ,其中HyperLogLog、Bitmap的底層都是 String 數(shù)據(jù)類型,Geospatial 的底層是 Sorted Set 數(shù)據(jù)類型。
五種常用的數(shù)據(jù)類型:
1、String:String是最常用的一種數(shù)據(jù)類型,普通的key- value 存儲都可以歸為此類。其中Value既可以是數(shù)字也可以是字符串。使用場景:常規(guī)key-value緩存應(yīng)用。常規(guī)計數(shù): 微博數(shù), 粉絲數(shù)。
2、Hash:Hash 是一個鍵值(key =》 value)對集合。Redishash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用于存儲對象,并且可以像數(shù)據(jù)庫中update一個屬性一樣只修改某一項屬性值。
3、Set:Set是一個無序的天然去重的集合,即Key-Set。此外還提供了交集、并集等一系列直接操作集合的方法,對于求共同好友、共同關(guān)注什么的功能實現(xiàn)特別方便。
4、List:List是一個有序可重復(fù)的集合,其遵循FIFO的原則,底層是依賴雙向鏈表實現(xiàn)的,因此支持正向、反向雙重查找。通過List,我們可以很方面的獲得類似于最新回復(fù)這類的功能實現(xiàn)。
5、SortedSet:類似于java中的TreeSet,是Set的可排序版。此外還支持優(yōu)先級排序,維護了一個score的參數(shù)來實現(xiàn)。適用于排行榜和帶權(quán)重的消息隊列等場景。
三種特殊的數(shù)據(jù)類型:
1、Bitmap:位圖,Bitmap想象成一個以位為單位數(shù)組,數(shù)組中的每個單元只能存0或者1,數(shù)組的下標(biāo)在Bitmap中叫做偏移量。使用Bitmap實現(xiàn)統(tǒng)計功能,更省空間。如果只需要統(tǒng)計數(shù)據(jù)的二值狀態(tài),例如商品有沒有、用戶在不在等,就可以使用 Bitmap,因為它只用一個 bit 位就能表示 0 或 1。
2、Hyperloglog。HyperLogLog 是一種用于統(tǒng)計基數(shù)的數(shù)據(jù)集合類型,HyperLogLog 的優(yōu)點是,在輸入元素的數(shù)量或者體積非常非常大
時,計算基數(shù)所需的空間總是固定 的、并且是很小的。每個 HyperLogLog 鍵只需要花費 12 KB 內(nèi)存,就可以計算接近 2^64 個不同元素的基 數(shù)。
場景:統(tǒng)計網(wǎng)頁的UV(即Unique Visitor,不重復(fù)訪客,一個人訪問某個網(wǎng)站多次,但是還是只計算為一次)。
要注意,HyperLogLog 的統(tǒng)計規(guī)則是基于概率完成的,所以它給出的統(tǒng)計結(jié)果是有一定誤差的,標(biāo)準(zhǔn)誤算率是 0.81%。
3、Geospatial :主要用于存儲地理位置信息,并對存儲的信息進行操作,適用場景如朋友的定位、附近的人、打車距離計算等。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7030瀏覽量
89034 -
存儲
+關(guān)注
關(guān)注
13文章
4314瀏覽量
85846 -
Redis
+關(guān)注
關(guān)注
0文章
375瀏覽量
10877
發(fā)布評論請先 登錄
相關(guān)推薦
評論