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

windows 常見(jiàn)數(shù)據(jù)類型有哪些?
Python數(shù)據(jù)類型有幾種
Redis 五大數(shù)據(jù)類型使用場(chǎng)景有哪些
Redis基本數(shù)據(jù)類型有哪些
結(jié)構(gòu)數(shù)據(jù)類型(Struct)及應(yīng)用案例
Java基礎(chǔ)數(shù)據(jù)類型有哪些?
定義數(shù)據(jù)類型
PLC數(shù)據(jù)類型

細(xì)說(shuō)redis十種數(shù)據(jù)類型及底層原理

Redis底層數(shù)據(jù)類型

評(píng)論