国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Redis的五種基本數(shù)據(jù)類型

這篇具有很好參考價值的文章主要介紹了Redis的五種基本數(shù)據(jù)類型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

String(字符串)

  • 簡介:String 是 Redis 最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)類型,它是二進制安全的,可以存儲圖片
  • 或者序列化的對象,值最大存儲為 512M
  • 簡單使用舉例: set key value、get key等
  • 應(yīng)用場景:共享 session、分布式鎖,計數(shù)器、限流。
  • 內(nèi)部編碼有 3 種,int(8字節(jié)長整型)/embstr(小于等于 39字節(jié)字符串)/ raw(大于 39個字節(jié)字符串)

C 語言的字符串是 char[]實現(xiàn)的,而 Redis 使用 SDS(simple dynamic

string) 封裝,sds 源碼如下:

struct sdshdr{
    unsigned int len; // 標記buf的長度
    unsigned int free; // 標記buf中未使用的元素個數(shù)
    char buf[]; // 存放元素的數(shù)組
}

Redis 為什么選擇 SDS 結(jié)構(gòu),而 C 語言原生的 char[]不香嗎?

舉例其中一點,SDS 中,O(1)時間復雜度,就可以獲取字符串長度;而 C 字符串,需要遍歷整個字符串,時間復雜度為 O(n)

Hash(哈希)

  • 簡介:在 Redis 中,哈希類型是指 v(值)本身又是一個鍵值對(k-v)結(jié)構(gòu)
  • 簡單使用舉例:hset key field value、hget key field
  • 內(nèi)部編碼:ziplist(壓縮列表) 、hashtable(哈希表)
  • 應(yīng)用場景:緩存用戶信息等。
  • 注意點:如果開發(fā)使用 hgetall,哈希元素比較多?話,可能導致 Redis 阻塞, 可以使用 hscan。而如果只是獲取部分 field,?議使用 hmget。

List(列表)

  • 簡介:列表(list)類型是用來存儲多個有序?字符串,一個列表最多可以存儲
  • 2^32-1 個元素。
  • 簡單實用舉例: lpush key value [value ...] 、lrange key start end
  • 內(nèi)部編碼:ziplist(壓縮列表)、linkedlist(鏈表)
  • 應(yīng)用場景: 消息隊列,文章列表,

list 應(yīng)用場景參考以下:文章來源地址http://www.zghlxwxcb.cn/news/detail-848408.html

lpush + lpop = Stack(棧)
lpush + rpop = Queue(隊列)
lpush + ltrim = Capped Collection(有限集合)
lpush + brpop = MQ(消息隊列)

Set(集合)

  • 簡介:集合(set)類型也是用來保存多個?字符串元素,但是不允許重復元素
  • 簡單使用舉例:sadd key element [element ...]、smembers key
  • 內(nèi)部編碼:intset(整數(shù)集合)、hashtable(哈希表)
  • 注意點:smembers 和 lrange、hgetall 都屬于比較重的命令,如果元素過多存 在阻塞Redis的可能性,可以使用 sscan 來完成。
  • 應(yīng)用場景: 用戶標簽,生成隨機數(shù)抽獎、社交需求。

有序集合(zset)

  • 簡介:已排序的字符串集合,同時元素不能重復
  • 簡單格式舉例:zadd key score member [score member ...],zrank key member
  • 底層內(nèi)部編碼:ziplist(壓縮列表)、skiplist(跳躍表)
  • 應(yīng)用場景:排行榜,社交需求(如用戶點贊)。

到了這里,關(guān)于Redis的五種基本數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Redis精品小案例:Redis支持五種基本數(shù)據(jù)類型及案例解析

    Redis支持五種基本數(shù)據(jù)類型,分別是:string(字符串)、hash(哈希)、list(列表)、set(集合)及zset(sorted set:有序集合)。以下是這些數(shù)據(jù)類型及其用法的簡要說明: String(字符串) : 是Redis最基本的數(shù)據(jù)類型,你可以理解為與Memcached一模一樣的類型,一個key對應(yīng)一個va

    2024年04月08日
    瀏覽(21)
  • redis五種數(shù)據(jù)類型介紹

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

    、string(字符串) ? ? 它師最基本的類型,可以理解為Memcached一模一樣的類型,一個key對應(yīng)一個value。 ? 注意:一個鍵最大能存儲 512MB。 ? 特性:可以包含任何數(shù)據(jù),比如jpg圖片或者序列化的對象,一個鍵最大能存儲512M ? 2、Hash(哈希) ? Redis hash 是一個鍵值(key=value)對集合。

    2024年02月14日
    瀏覽(15)
  • 源碼篇--Redis 五種數(shù)據(jù)類型

    源碼篇--Redis 五種數(shù)據(jù)類型

    在 源碼篇–Redis 底層數(shù)據(jù)結(jié)構(gòu) 章節(jié)中介紹了redis 底層的數(shù)據(jù)結(jié)構(gòu),而底層的數(shù)據(jù)結(jié)構(gòu)又是為了數(shù)據(jù)存儲而設(shè)計的,那么redis 中我們都可以存入哪些數(shù)據(jù)類型呢? 在redis 中我們可以直接將字符串,作為key 或者value 進行存儲,它的底層 就是使用了 SDS 進行實現(xiàn)的; 基于動態(tài)字

    2024年01月24日
    瀏覽(25)
  • redis常用五種數(shù)據(jù)類型詳解

    redis常用五種數(shù)據(jù)類型詳解

    目錄 前言: string 相關(guān)命令 內(nèi)部編碼 應(yīng)用場景 hash 相關(guān)命令 內(nèi)部編碼 應(yīng)用場景 list 相關(guān)命令 內(nèi)部編碼 應(yīng)用場景 set 相關(guān)命令 內(nèi)部編碼 應(yīng)用場景 Zset 相關(guān)命令 內(nèi)部編碼 應(yīng)用場景 漸進式遍歷 ? ? redis有多種數(shù)據(jù)類型,常用的有五種,其他都是在特定場景下使用的數(shù)據(jù)類型。

    2024年02月11日
    瀏覽(19)
  • Redis對象和五種常用數(shù)據(jù)類型

    Redis對象和五種常用數(shù)據(jù)類型

    對象分為鍵對象和值對象 鍵對象一般是string類型 值對象可以是string,list,set,zset,hash Redis對象和數(shù)據(jù)結(jié)構(gòu)的關(guān)系 鍵總是一個字符串對象 而值可以是五種中的一種 type 命令 得到的結(jié)果就是值的類型 可以用object encoding命令查看編碼 list數(shù)據(jù)類型的編碼由linkedlist和ziplist編碼合并

    2024年02月12日
    瀏覽(24)
  • Redis_五種數(shù)據(jù)類型及操作命令

    5.1.1 簡介 String類型在redis中最常見的一種類型 string類型是二制安全的,可以存放字符串、數(shù)值、json、圖像數(shù)據(jù) value存儲最大數(shù)據(jù)量是512M 5.1.2 常用命令 set key value:添加鍵值對(下面指令可以再后添加) nx:當數(shù)據(jù)庫中key不存在時,可以將key-value添加到數(shù)據(jù)庫 xx: 當數(shù)據(jù)庫key存在

    2024年02月13日
    瀏覽(20)
  • Redis 五種基本數(shù)據(jù)結(jié)構(gòu)及基本使用

    Redis 五種基本數(shù)據(jù)結(jié)構(gòu)及基本使用

    2.1 String 的使用 Redis String 一個鍵對應(yīng)一個值,并且是二進制安全的,值可以是圖片或者序列化后的對象。 一個鍵最大能存儲 512 MB。 2.1.1 set 命令的使用 set key value 重復對同一個鍵設(shè)置值,導致覆蓋 15 已經(jīng)被覆蓋了。 set key value nx 當 key 不存在時,返回 OK 表示設(shè)置成功 當 k

    2024年02月16日
    瀏覽(59)
  • Redis五種類型

    Redis五種類型

    應(yīng)用場景 緩存功能:string 最常用的就是緩存功能,會將一些更新不頻繁但是查詢頻繁的數(shù)據(jù)緩存起來,以此來減輕 DB 的壓力。 底層實現(xiàn) 如果字符串對象保存的是一個字符串值, 并且這個字符串值的長度大于 44 字節(jié), 那么字符串對象將使用一個簡單動態(tài)字符串(SDS)來保

    2024年02月11日
    瀏覽(22)
  • Redis實戰(zhàn)解讀-初識Redis&Redis基本數(shù)據(jù)類型

    1.什么是Redis ? Redis是一個速度非常快的非關(guān)系型數(shù)據(jù)庫(non-relational database),它可以存儲鍵(key)與五種不同類型的值的映射(mapping),可以將存儲在內(nèi)存的鍵值對數(shù)據(jù)持久化到磁盤,可以使用復制特性來擴展讀性能,也可以采用客戶端分片來擴展寫性能。--《Redis實戰(zhàn)》 2.Redis與

    2024年02月08日
    瀏覽(18)
  • Redis(二)—— 五大基本數(shù)據(jù)類型和三大特殊數(shù)據(jù)類型

    Redis(二)—— 五大基本數(shù)據(jù)類型和三大特殊數(shù)據(jù)類型

    1、常用命令 ?批量操作: redis可以定義對象? 方式(一) :以JSON格式(其實就是key-value格式)保存一個對象 方式(二) : 把對象的兩個屬性定義成兩個key 注意,如果采用第一種方式,那么無法單獨取出字段哦~ 2、使用場景 數(shù)字int類型的string作為計數(shù)器,比如統(tǒng)計文章的

    2024年02月15日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包