Redis五種資料型別具體用法
阿新 • • 發佈:2021-01-14
我們都知道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)卻可以重複。
例子
後面補