0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Redis的數(shù)據(jù)類型有哪些

麥辣雞腿堡 ? 來源:程序員庫森 ? 作者:程序員庫森 ? 2023-10-09 10:51 ? 次閱讀

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ī)計(jì)數(shù): 微博數(shù), 粉絲數(shù)。

2、Hash:Hash 是一個(gè)鍵值(key =》 value)對集合。Redishash 是一個(gè) string 類型的 field 和 value 的映射表,hash 特別適合用于存儲對象,并且可以像數(shù)據(jù)庫中update一個(gè)屬性一樣只修改某一項(xiàng)屬性值。

3、Set:Set是一個(gè)無序的天然去重的集合,即Key-Set。此外還提供了交集、并集等一系列直接操作集合的方法,對于求共同好友、共同關(guān)注什么的功能實(shí)現(xiàn)特別方便。

4、List:List是一個(gè)有序可重復(fù)的集合,其遵循FIFO的原則,底層是依賴雙向鏈表實(shí)現(xiàn)的,因此支持正向、反向雙重查找。通過List,我們可以很方面的獲得類似于最新回復(fù)這類的功能實(shí)現(xiàn)。

5、SortedSet:類似于java中的TreeSet,是Set的可排序版。此外還支持優(yōu)先級排序,維護(hù)了一個(gè)score的參數(shù)來實(shí)現(xiàn)。適用于排行榜和帶權(quán)重的消息隊(duì)列等場景。

三種特殊的數(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),例如商品有沒有、用戶在不在等,就可以使用 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ù)。

場景:統(tǒng)計(jì)網(wǎng)頁的UV(即Unique Visitor,不重復(fù)訪客,一個(gè)人訪問某個(gè)網(wǎng)站多次,但是還是只計(jì)算為一次)。

要注意,HyperLogLog 的統(tǒng)計(jì)規(guī)則是基于概率完成的,所以它給出的統(tǒng)計(jì)結(jié)果是有一定誤差的,標(biāo)準(zhǔn)誤算率是 0.81%。

3、Geospatial :主要用于存儲地理位置信息,并對存儲的信息進(jìn)行操作,適用場景如朋友的定位、附近的人、打車距離計(jì)算等。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6754

    瀏覽量

    88611
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4170

    瀏覽量

    85481
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    369

    瀏覽量

    10810
收藏 人收藏

    評論

    相關(guān)推薦

    Redis數(shù)據(jù)類型介紹

    Redis 作為一個(gè)內(nèi)存數(shù)據(jù)庫已經(jīng)被許許多多的公司使用,它的性能非常的優(yōu)秀,讀寫速度支持非??於抑С?10W 的 QPS 。今天我們就來學(xué)習(xí)下它的豐富的數(shù)據(jù)類型。 Redis
    的頭像 發(fā)表于 10-09 10:53 ?728次閱讀
    <b class='flag-5'>Redis</b><b class='flag-5'>數(shù)據(jù)類型</b>介紹

    詳解Redis的列表類型list

    Redis入門(四)Redis數(shù)據(jù)類型之列表類型list
    發(fā)表于 05-08 08:16

    CODESYS支持的數(shù)據(jù)類型哪些

    CODESYS支持的數(shù)據(jù)類型哪些?CODESYS關(guān)于的數(shù)據(jù)類型的相關(guān)規(guī)則是什么?
    發(fā)表于 09-30 09:01

    windows 常見數(shù)據(jù)類型哪些?

    二,Windows 數(shù)據(jù)類型命名規(guī)律 基本數(shù)據(jù)類型包括:BYTE、CHAR、WORD、SHORT、INT 等。 指針類型的命令方式一般是在其指向的數(shù)據(jù)類型前加“LP”或“P”,比如
    發(fā)表于 08-09 08:00 ?1次下載

    Python數(shù)據(jù)類型幾種

    的實(shí)部 a 和虛部 b 都是浮點(diǎn)型?! ?. 字符串  在Python中,加了引號的字符都被認(rèn)為是字符串,其聲明三種方式,分別是:單引號、雙引號和三引號;Python中的字符串兩種數(shù)據(jù)類型,分別
    發(fā)表于 02-18 17:59 ?1498次閱讀

    Redis 五大數(shù)據(jù)類型使用場景哪些

    數(shù)據(jù)結(jié)構(gòu)和算法。key都是由字符串構(gòu)成的,那么這五種數(shù)據(jù)結(jié)構(gòu)的使用場景哪些?一起來看看! 一 字符串 字符串類型Redis最基礎(chǔ)的
    的頭像 發(fā)表于 11-05 17:35 ?5398次閱讀

    Redis基本數(shù)據(jù)類型哪些

    說說Redis基本數(shù)據(jù)類型哪些吧 字符串:redis沒有直接使用C語言傳統(tǒng)的字符串表示,而是自己實(shí)現(xiàn)的叫做簡單動態(tài)字符串SDS的抽象類型
    的頭像 發(fā)表于 11-02 11:46 ?2498次閱讀

    結(jié)構(gòu)數(shù)據(jù)類型(Struct)及應(yīng)用案例

    Struct數(shù)據(jù)類型使用非常靈活,隨時(shí)可以使用,但是相對于PLC數(shù)據(jù)類型 (UDT) 以下缺點(diǎn),所以建議需要使用Struct類型時(shí),可以使用PLC
    的頭像 發(fā)表于 07-27 16:10 ?1688次閱讀

    定義數(shù)據(jù)類型

    在運(yùn)算之前我們必須首先定義出數(shù)據(jù)類型,定義出腳本支持的數(shù)據(jù)類型,這是運(yùn)算的基礎(chǔ)。 這一小節(jié)我們將定義出數(shù)據(jù)類型,在這里我們暫時(shí)定義四個(gè)數(shù)據(jù)類型:
    的頭像 發(fā)表于 03-03 10:10 ?870次閱讀

    PLC數(shù)據(jù)類型

    ) 或 64 位雙精度數(shù) (LReal) 表示。比如模擬量模塊采集的溫度 壓力等 4 時(shí)間 日期數(shù)據(jù)類型 TIME 數(shù)據(jù)作為符號雙整數(shù)存儲,基本單位為毫秒。存儲的數(shù)值是多少,就代表
    發(fā)表于 04-17 15:49 ?0次下載
    PLC<b class='flag-5'>數(shù)據(jù)類型</b>

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

    string 是 Redis 最基本的數(shù)據(jù)類型,它可以存儲任意類型數(shù)據(jù),比如文本、數(shù)字、圖片或者序列化的對象。一個(gè) string 類型的鍵
    的頭像 發(fā)表于 05-15 11:21 ?1780次閱讀
    細(xì)說<b class='flag-5'>redis</b>十種<b class='flag-5'>數(shù)據(jù)類型</b>及底層原理

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

    1. 前言 Redis的鍵值對中的常見數(shù)據(jù)類型String (字符串)、List(列表)、Hash(哈希)、Set(集合)、Zset(有序集合)。那么其對應(yīng)的底層數(shù)據(jù)結(jié)構(gòu)
    的頭像 發(fā)表于 10-09 14:05 ?342次閱讀
    <b class='flag-5'>Redis</b>底層<b class='flag-5'>數(shù)據(jù)類型</b>

    redis的五種數(shù)據(jù)類型

    Redis是一種高性能的內(nèi)存數(shù)據(jù)庫,常用于緩存、任務(wù)隊(duì)列、分布式鎖等場景。它提供了多種數(shù)據(jù)類型來滿足各種不同的需求,包括字符串(string)、哈希(hash)、列表(list)、集合(set
    的頭像 發(fā)表于 11-16 11:06 ?561次閱讀

    redis的五種數(shù)據(jù)類型底層數(shù)據(jù)結(jié)構(gòu)

    Redis是一種內(nèi)存數(shù)據(jù)存儲系統(tǒng),支持多種數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)結(jié)構(gòu)不僅可以滿足常見的存儲需求,還能夠通過其底層數(shù)據(jù)結(jié)構(gòu)提供高效的操作和查詢。以
    的頭像 發(fā)表于 11-16 11:18 ?646次閱讀

    oracle的數(shù)據(jù)類型哪些

    Oracle數(shù)據(jù)庫中有許多數(shù)據(jù)類型可供選擇,每種數(shù)據(jù)類型都有其各自的特點(diǎn)和適用場景。下面是對Oracle數(shù)據(jù)庫中最常用的數(shù)據(jù)類型的詳盡說明,
    的頭像 發(fā)表于 12-05 16:45 ?2137次閱讀