大话 Redis 数据结构
數(shù)據(jù)結(jié)構(gòu)而非類型
Redis 有 5 種基本數(shù)據(jù)結(jié)構(gòu):
有很多文章都會(huì)說(shuō),Redis 支持 5 種常用的 數(shù)據(jù)類型,這其實(shí)存在很大的歧義。Redis 里存的都是二進(jìn)制數(shù)據(jù),其實(shí)就是字節(jié)數(shù)組 (byte[]),這些字節(jié)數(shù)據(jù)是沒(méi)有數(shù)據(jù)類型的,只有把它們按照合理的格式解碼后,可以變成一個(gè)字符串,數(shù)字或?qū)ο?#xff0c;此時(shí)才具有數(shù)據(jù)類型。
所以任何東西只要能轉(zhuǎn)化成字節(jié)數(shù)組 (byte[]),就可以存到 Redis 里,無(wú)論是字符串、數(shù)字、對(duì)象、圖片、聲音、還是其他文件。
string
Redis 里的數(shù)據(jù)結(jié)構(gòu) string 指的并不是字符串,它其實(shí)表示的是一種最簡(jiǎn)單的,一個(gè) key 只能對(duì)應(yīng)一個(gè) value 的數(shù)據(jù)結(jié)構(gòu)。這里的 key 和 value 都是 byte 數(shù)組,只不過(guò) key 一般是由一個(gè)字符串轉(zhuǎn)換成的 byte 數(shù)組,value 則根據(jù)實(shí)際需要而定。
在特定情況下,對(duì) value 也會(huì)有一些要求,比如要進(jìn)行自增或自減操作,那 value 對(duì)應(yīng)的 byte 數(shù)組必須要能被解碼成一個(gè)數(shù)字才行。
value 是一個(gè)可變的字節(jié)數(shù)組,我們初始化字符串的內(nèi)容,
list
那么 list 這種數(shù)據(jù)結(jié)構(gòu),其實(shí)表示一個(gè) key 可以對(duì)應(yīng)多個(gè) value,且 value 之間是有先后順序的,value 值可以重復(fù)。
set
set 這種數(shù)據(jù)結(jié)構(gòu),表示一個(gè) key 可以對(duì)應(yīng)多個(gè) value,且 value 之間是沒(méi)有先后順序的,value 值不可以重復(fù)。
hash
hash 這種數(shù)據(jù)結(jié)構(gòu),表示一個(gè) key 可以對(duì)應(yīng)多個(gè) key - value,此時(shí)這些 key - value 對(duì)之間的先后順序一般意義不大,這是一個(gè)按照名稱語(yǔ)義來(lái)訪問(wèn)的數(shù)據(jù)結(jié)構(gòu),而非位置語(yǔ)義。
zset
zset 又稱 sorted set,這種數(shù)據(jù)結(jié)構(gòu)表示一個(gè) key 可以對(duì)應(yīng)多個(gè) value,value 之間是有大小排序的,value 值不可以重復(fù)。每個(gè) value 都和一個(gè)浮點(diǎn)數(shù)相關(guān)聯(lián),該浮點(diǎn)數(shù)叫 score。元素排序規(guī)則是:先按 score 排序,再按 value 排序。
轉(zhuǎn)載于:https://juejin.im/post/5cb7c055e51d456e303db87b
總結(jié)
以上是生活随笔為你收集整理的大话 Redis 数据结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Visual studio 无法打开源文
- 下一篇: 【EXLIBRIS】#小词旮旯# 000