5種數(shù)據(jù)類型

Redis支持5種數(shù)據(jù)類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
① 簡(jiǎn)介:String是Redis最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)類型,它是二進(jìn)制安全的,可以存儲(chǔ)數(shù)字,圖片或者序列化的對(duì)象,值最大存儲(chǔ)為512M
簡(jiǎn)單使用舉例: set key value、get key等
應(yīng)用場(chǎng)景:共享session、分布式鎖,計(jì)數(shù)器、限流。
② 哈希類型是指v(值)本身又是一個(gè)鍵值對(duì)(k-v)結(jié)構(gòu)
簡(jiǎn)單使用舉例:hset key field value 、hget key field
內(nèi)部編碼:ziplist(壓縮列表) 、hashtable(哈希表)
應(yīng)用場(chǎng)景:緩存用戶信息等。
③ Redis list 列表是簡(jiǎn)單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)。
底層雙向鏈表,可以通過(guò)push和pop操作從列表的頭部或者尾部添加或者刪除元素,這樣List即可以作為棧,也可以作為隊(duì)列
lpush+lpop=Stack(棧)
lpush+rpop=Queue(隊(duì)列)
④ Redis set是string類型的無(wú)序集合。不包含重復(fù)元素
⑤ Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復(fù)的成員。但sorted set可以通過(guò)用戶額外提供一個(gè)優(yōu)先級(jí)(score)的參數(shù)來(lái)為成員排序,并且是插入有序的,即自動(dòng)排序。
Redis sorted set的內(nèi)部使用ziplist或跳表,跳表組合了skiplist和hash,HashMap里放的是成員到score的映射,而跳表里存放的是所有的成員,
跳表就是在鏈表的基礎(chǔ)上,增加多級(jí)索引提升查找效率。
跳表支持平均 O(logN),最壞 O(N)復(fù)雜度的節(jié)點(diǎn)查找,還可以通過(guò)順序性操作批量處理節(jié)點(diǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容