1. 程式人生 > 實用技巧 >redis的list、set、hash、sorted set型別

redis的list、set、hash、sorted set型別

List

Redis的列表(List)資料型別可以被看作簡單的字串列表。列表按照插入順序排序。在操作Redis的列表時,可以將一個元素插入這個列表的頭部或尾部。一個列表大約可以儲存2*32-1個元素。

#從左向右將多個值插入列表中
LPUSH key value value ...
#從左向右將多個值插入列表中
RPUSH key value value ...
#檢視列表裡面所有的值(正向索引最開頭是0,反向索引最開頭是-1)
LRANGE key 0 -1
#根據下標(index)取出列表中的值
LINDEX key index
#更具下標更新裡面一個值
LSET key index value
#從左到右移除某個元素 count(移除的元素個數,如果為負數則移除位置相反) value(要移除的元素)
LREM key count value
#在value後面插入一個元素value1
LINSERT key after value value1
#在value前面插入一個元素value1
LINSERT key before value value1
#將值插入列表頭部
LPUSHX key value
#將值插入列表尾部
RPUSHX key value
#統計列表長度
LLEN key
#返回並刪除列表的頭元素
LPOP key
#返回並刪除列表的尾元素
RPOP key
#在指定時間內刪除列表的頭元素
BLPOP key timeout
#在指定時間內刪除列表的尾元素
BRPOP key timeout
#在指定區間內修改列表
LTRIM key start stop
#將列表尾元素移動到另一張表中
RPOPLPUSH key1 key2
#在指定時間內移動列表元素到另一張表
BRPOPLPUSH key1 key2 timeout

Hash

Redis的Hash型別是一個String型別的域(field)和值(value)的對映表,Hash數值型別常常用來儲存物件資訊。在Redis中,每個雜湊表可以儲存2*32-1個鍵值對也就是40多億個資料。

#設定雜湊表域的值
HSET key field value
#獲取雜湊表域的值
HGET key field
#為雜湊表不存在的域設值
HSETNX key field value
#設定多個值
HMSET key field1 value1 field2 values
#獲取多個值
HMGET key field1 field2
#檢視hash表頭
HKEYS key
#檢視所有value值
HVALS key
#獲取雜湊表裡面的所有資料
HGETALL key
#把值加上一個num
HINCRBYFLOAT key field num
#把值減去一個num
HINCRBYFLOAT key field -num
#統計雜湊表中域的數量
HLEN key
#統計域的值的字串長度
HSTRLEN key field
#刪除雜湊表中的多個域
HDEL key field
#判斷雜湊表中的域是否存在
HEXISTS key field

Set

Redis的資料型別集合(Set)是String型別的無序集合。集合無序且不存在重複的元素,每個元素都是唯一的。集合是通過雜湊表來實現的,所以使用集合進行增加、刪除、查詢操作時的效率特別高,複雜度為O(1)。一個集合所能儲存的最大容量為2*32-1個元素。

#新增多個元素到集合中
SADD key member...
#移動集合元素到另一個集合
SMOVE source destination member
#求出兩個數的交集,顯示在客戶端上
SINTER key1 key2
#求出兩個數的交集,結果返回給目標(dest),不顯示在客戶端上
SINTERSTORTE dest key1 key2
#求出兩個數的並集,顯示在客戶端上
SUNION key1 key2
#求出兩個數的並集,結果返回給目標(dest),不顯示在客戶端上
SUNIONSTORTE dest key1 key2
#求出兩個數的差集,顯示在客戶端上
SDIFF key1 key2
#判斷某個元素是否在集合中
SISMEMBER key number
#獲取集合中的所有元素
SMEMBERS key
#刪除集合中的元素
SPOP key 
#獲取集合中元素的數量
SCARD key
#刪除集合中的多個元素
SREM key member
#隨機事件
#count如果為正數:取出一個去重的結果集(不能超過已有集)
#count如果為負數:取出一個帶重複的結果集,一定滿足你的數量
#count如果為0:不返回
SRANDMEMBER key count

Sorted Set

Redis的資料型別有序集合(Sorted Set)也是String型別的集合。有序集合中不存在重複的元素,每個複合元素都有對應double型別的分數。Redis就是通過這個元素對應的分數來為集合元素進行從小到大的排序。集合中的元素是唯一的,但是集合元素對應的分數值不唯一,可以重複。

有序列表採用雜湊表來實現,當面對增加,刪除,擦訊操作時,效率特別高,複雜度為O(1)。有序列表中所能儲存的最大元素數量是2*32-1個。

#新增多個元素到有序集合中
ZADD key sorce member ...
#獲取指定區間的元素(升序)
ZRANGE key start stop
#獲取指定區間的元素並顯示元素對應的score值
ZRANGE key start stop withscores
#獲取指定分數區間內的資料
ZRANGEBYSCORE key min max
#獲取在指定區間內的元素(降序)
ZREVRANGE key start stop 
#獲取元素分值
ZSCORE key value
#獲取有序集合元素排名
ZRANK key value
#為分數值加上增量
ZINCRBY key increment member
#獲取有序集合中的元素數量
ZCARD key
#獲取在分數區間內的元素數量
ZCOUNT key min max
#獲取在指定區間內的元素數量
ZLEXCOUNT key min max
#獲取集合在指定範圍內的元素
ZRANGEBYLEX key min max
#獲取有序集合元素的倒序排名
ZREVRANK key member
#儲存多個有序集合的交集
ZINTERSTORE destination numkeys key [key...] [WEIGHTS weight [weight...]] [AGGREGATE SUM|MIN|MAX]
#儲存多個有序集合的並集
ZUNIONSTORE destination numkeys key [key...] [WEIGHTS weight [weight...]] [AGGREGATE SUM|MIN|MAX]
#刪除有序集合中的多個元素
ZREM key member
#刪除有序集合在指定區間內的元素
ZREMRANGEBYLEX key min max
#刪除有序集合在指定排名區間內的元素
ZREMRANGEBYRANK key start stop
#刪除有序集合在指定分數區間內的元素
ZREMRANGEBYSCORE key min max