1. 程式人生 > 其它 >Redis五種資料型別具體用法

Redis五種資料型別具體用法

技術標籤:Redisredis

我們都知道Redis支援5中資料型別:

  • string 字串(可以為整形、浮點型和字串,統稱為元素)
  • hash 雜湊(hash的key必須是唯一的)
  • list 列表(實現佇列,元素不唯一,先入先出原則)
  • set 集合(各不相同的元素)
  • zset(sorted set) 有序集合

在我實際專案中,我只用過String型別,由於string 型別是二進位制安全的,意味著它可以包含任何資料(序列化後的物件和jpg圖片),有沒有覺得String型別完全夠用了?

回到正題,接下來我會實現每種資料型別的儲存。

String(字串)

概述

  • string 是 redis 最基本的型別,你可以理解成與 Memcached 一模一樣的型別,一個 key 對應一個 value。
  • string 型別是二進位制安全的。意思是 redis 的 string 可以包含任何資料。比如jpg圖片或者序列化的物件。
  • string 型別是 Redis 最基本的資料型別,string 型別的值最大能儲存 512MB。

例子:

jedis.set("test", "123");// 儲存key為test,value為123的資料
jedis.get("test"); // 檢視key為test的資料

Hash(雜湊)

概述

  • Redis hash 是一個鍵值(key=>value)對集合。
  • Redis hash 是一個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件。

例子:

jedis.hset("test1","map1","value1");// 儲存一個redis的key為test1,map的key為map1,value為value1的資料
jedis.hget("test1","map1"); // 獲取redis下key為test1中map的key為map1的值

List(列表)

概述

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

例子

jedis.lpush("test2","1");
jedis.lpush("test2","2");
String pop1 = jedis.lpop("test2");// 輸出"2"
String pop2 = jedis.lpop("test2");// 輸出"1"  // 說明是先進後出
jedis.lpush("test2","1");
jedis.lpush("test2","2");
List<String> tests2 = jedis.lrange("test2", 0, -1);// ["2","1"]

set (集合)

概述

  • Redis 的 Set 是 string 型別的無序集合。
  • 集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是 O(1)。

sadd 命令

新增一個 string 元素到 key 對應的 set 集合中,成功返回 1,如果元素已經在集合中返回 0。

例子

後面補

zset(sorted set)

概述

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

例子

後面補