Redis的數(shù)據(jù)類型

Redis是一個開源的使用ANSI C語言編寫、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API,它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,支持五種數(shù)據(jù)類型:string(字符串),hash(哈希),list(列表),set(集合)和zset(sorted set:有序集合)。?

string

string是redis最基本的類型,可以理解為與Memcached一模一樣的類型,一個key對應(yīng)一個value。string類型是二進(jìn)制安全的,即redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對象,string類型是Redis最基本的數(shù)據(jù)類型,一個鍵最大能存儲512MB。

redis 127.0.0.1:6379>?SET name "wunian"

OK

redis 127.0.0.1:6379>?GET name

"wunian"

hash

Redis hash 是一個鍵值(key=>value)對集合,也是一個 string 類型的 field 和 value 的映射表,hash 特別適合用于存儲對象,每個hash 可以存儲 2?^32-1 鍵值對(40多億)。

redis>?HMSET hash field1 "Hello"?field2 "Redis"

"OK"

redis>?HGET hash field1

"Hello"

redis>?HGET hash field2

"Redis"

list

Redis list列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊),列表最多可存儲2^32?- 1 元素 (4294967295, 每個列表可存儲40多億)。

redis 127.0.0.1:6379>?lpush db redis

(integer)?1

redis 127.0.0.1:6379>?lpush db mongodb

(integer)?2

redis 127.0.0.1:6379>?lpush db rabitmq

(integer)?3

redis 127.0.0.1:6379>?lrange db 0?10

1) "rabitmq"

2) "mongodb"

3) "redis"

set

Redis set是string類型的無序集合,集合是通過哈希表實現(xiàn)的,添加,刪除,查找的復(fù)雜度都是O(1),添加一個string 元素到 key 對應(yīng)的 set 集合中,成功返回1,如果元素已經(jīng)在集合中返回 0,如果 key 對應(yīng)的 set 不存在則返回錯誤,集合中最大的成員數(shù)為2^32?- 1(4294967295, 每個集合可存儲40多億個成員)。

redis 127.0.0.1:6379>?sadd db redis

(integer)?1

redis 127.0.0.1:6379>?sadd db mongodb

(integer)?1

redis 127.0.0.1:6379>?sadd ?db?rabitmq

(integer)?1

redis 127.0.0.1:6379>?sadd ?db?rabitmq

(integer)?0

redis 127.0.0.1:6379>?smembers ?db?

1) "redis"

2) "rabitmq"

3)?"mongodb"

zset

Redis zset和set 一樣也是string類型元素的集合,且不允許重復(fù)的成員,不同的是每個元素都會關(guān)聯(lián)一個double類型的分?jǐn)?shù)。redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序,zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。

redis 127.0.0.1:6379>?zadd db 0?redis

(integer)?1

redis 127.0.0.1:6379>?zadd db 0?mongodb

(integer)?1

redis 127.0.0.1:6379>?zadd db 0?rabitmq

(integer)?1

redis 127.0.0.1:6379>?zadd db 0?rabitmq

(integer)?0

redis 127.0.0.1:6379>?>?ZRANGEBYSCORE db 0?1000

1) "mongodb"

2) "rabitmq"

3)?"redis"

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

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

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