Like Share Discussion Bookmark Smile

J.J. Huang   2019-04-07   Redis   瀏覽次數:次   DMCA.com Protection Status

Redis - 第二章 | 資料類型

在前一章稍微對Redis做了簡單的介紹,這邊將要說明Redis支援的每個資料類型,Redis支持
字串(string)、雜湊(hash)、清單(list)、集合(set)、有序集合(sorted set)、點陣圖(bitmap)和超重對數(hyperloglog),這邊會先行介紹前五種,至於點陣圖(bitmap)和超重對數(hyperloglog)後面會在特別講解。

String(字串)

  • string 是 redis 最基本的類型,你可以理解成與 Memcached 一模一樣的類型,一個 key 對應一個 value。

  • string 類型是二進制安全的。意思是 redis 的 string 可以包含任何資料。比如jpg圖片或者序列化的對象。

  • string 類型是 Redis 最基本的資料類型,string 類型的值最大能存儲 512MB。

範例

範例中我們使用了 Redis 的 SET 和 GET 指令。key 為 name,對應的值為 J.J.。
String類型也支援批量的讀寫操作,使用 Redis 的 MSET 和 MGET 指令。[key value]…和 [key]…。
注意:一個鍵最大能存儲512MB

Hash(雜湊)

  • Redis hash 是一個鍵值(key=>value)對集合。

  • Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。

範例

範例中我們使用了 Redis HMSET, HGET 命令,HMSET 設置了兩個 field=>value 對, HGET 獲取對應 field 對應的 value。
每個 hash 可以存儲 2的32次方 -1 鍵值對(40多億)。

List(清單)

  • Redis 清單是簡單的字串清單,按照插入順序排序。你可以添加一個元素到清單的頭部(左邊)或者尾部(右邊)。

清單最多可存儲 2的32次方 - 1 元素 (4294967295, 每個列表可存儲40多億)。

Set(集合)

  • Redis的Set是string類型的無序集合。

  • 集合是通過雜湊表實現的,所以添加,刪除,查找的複雜度都是O(1)。

sadd 命令
添加一個 string 元素到 key 對應的 set 集合中,成功返回1,如果元素已經在集合中返回 0,如果 key 對應的 set 不存在則返回錯誤。

1
sadd key member

範例

注意:範例中 redis 添加了兩次,但根據集合內元素的唯一性,第二次插入的元素將被忽略。
集合中最大的成員數為 2的32次方 - 1 (4294967295, 每個集合可存儲40多億個成員)。

zset(sorted set:有序集合)

  • Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。
    不同的是每個元素都會關聯一個double類型的分數。 redis正是通過分數來為集合中的成員進行從小到大的排序。

  • zset的成員是唯一的,但分數(score)卻可以重複。

zadd 命令
添加元素到集合,元素在集合中存在則更新對應score

1
zadd key score member

範例

以上只是針對這些資料類型做“簡單”的介紹,在後面的文章中,將會在針對每個類型的操作指令做更詳細的介紹。


註:以上參考了
Redis 简介
Redis 3.0 中文版
淺談NoSQL資料庫-Redis
第1章 初识Redis
2019 Redis 命令参考