1. 程式人生 > >Redis的五種資料結構

Redis的五種資料結構

一、字串(String)
單個字串的設定與獲取。
常用命令:
1 設定指定 key 的值

SET key value 

2 獲取指定 key 的值。

GET key 

3 獲取所有(一個或多個)給定 key 的值。

MGET key1 [key2..]

4 將值 value 關聯到 key ,並將 key 的過期時間設為 seconds (以秒為單位)。

SETEX key seconds value

5 只有在 key 不存在時設定 key 的值。

 SETNX key value

6 返回 key 所儲存的字串值的長度。

STRLEN key

7 同時設定一個或多個 key-value 對。

MSET key value [key value ...]

8 同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在。

MSETNX key value [key value ...] 

9 如果 key 已經存在並且是一個字串, APPEND 命令將 value 追加到 key 原來的值的末尾。

APPEND key value 

二、雜湊(Hash)
redis hash是一個String型別的file和value的對映表,hash特別適合用於儲存物件。
1 刪除一個或多個雜湊表字段

HDEL key field2 [field2] 

2 檢視雜湊表 key 中,指定的欄位是否存在。

HEXISTS key field 

3 獲取儲存在雜湊表中指定欄位的值/td>

HGET key field 

4 獲取在雜湊表中指定 key 的所有欄位和值

HGETALL key 

5 獲取所有雜湊表中的欄位

HKEYS key 

6 獲取雜湊表中欄位的數量

HLEN key 

7 獲取所有給定欄位的值

HMGET key field1 [field2] 

8 同時將多個 field-value (域-值)對設定到雜湊表 key 中。

HMSET key field1 value1 [field2 value2 ] 

9 將雜湊表 key 中的欄位 field 的值設為 value 。

HSET key field value 

10 只有在欄位 field 不存在時,設定雜湊表字段的值。

HSETNX key field value 

11 獲取雜湊表中所有值

HVALS key 

三、列表(List)
Redis列表是簡單的字串列表,其實就是連結串列(雙端連結串列),按照插入順序排序。你可以新增一個元素導列表的頭部(左邊)或者尾部(右邊)。List結構可以有序的儲存多個字串,並且是允許元素重複的。
1 通過索引獲取列表中的元素

LINDEX key index 

2 在列表的元素前或者後插入元素

LINSERT key BEFORE|AFTER pivot value
LLEN key 獲取列表長度

3 移出並獲取列表的第一個元素

LPOP key 

4 將一個或多個值插入到列表頭部

LPUSH key value1 [value2] 

5 將一個或多個值插入到已存在的列表頭部

LPUSHX key value 

6 獲取列表指定範圍內的元素

LRANGE key start stop 

7 移除列表元素

LREM key count value 

8 通過索引設定列表元素的值

LSET key index value 

9 移除並獲取列表最後一個元素

RPOP key 

10 移除列表的最後一個元素,並將該元素新增到另一個列表並返回

RPOPLPUSH source destination 

11 在列表中新增一個或多個值

RPUSH key value1 [value2] 

12 為已存在的列表新增值

RPUSHX key value 

四、集合(Set)
Redis的Set是string型別的無序集合。
集合通過使用散列表來保證自己儲存的每個字串都是各不相同的。
1 向集合新增一個或多個成員

SADD key member1 [member2] 

2 獲取集合的成員數

SCARD key 

3 返回給定所有集合的差集

SDIFF key1 [key2]

4 返回給定所有集合的差集並存儲在 destination 中

SDIFFSTORE destination key1 [key2]

5 返回給定所有集合的交集

SINTER key1 [key2] 

6 返回集合中的所有成員

SMEMBERS key 

7 移除並返回集合中的一個隨機元素

SPOP key 

8 返回集合中一個或多個隨機數

SRANDMEMBER key [count] 

9 移除集合中一個或多個成員

SREM key member1 [member2]

10 返回所有給定集合的並集

SUNION key1 [key2] 

五、有序集合(Sort Set)
Redis 有序集合和集合一樣也是string型別元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯一個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(score)卻可以重複。
1 向有序集合新增一個或多個成員,或者更新已存在成員的分數

 ZADD key score1 member1 [score2 member2] 

2 獲取有序集合的成員數

ZCARD key 

3 移除有序集合中的一個或多個成員

ZREM key member [member ...]

3 計算ZUNIONSTORE destination numkeys key [key …] 計算給定的一個或多個有
序集的並集,並存儲在新的 key 中在有序集合中指定區間分數的成員數

ZCOUNT key min max