清單類型
Redis中的清單類型時有序清單,而且是雙向連結清單,取頭尾部資料非常快,添加資料的時間複雜度非常的低
向兩端增加元素
Lpush key value [value…]
Rpush key value [value…]
指令示範如下:

從清單兩端彈出元素(彈出後即被移除)
從左端彈出:Lpop key
從右端彈出:Rpop key
指令示範如下:
擷取清單中元素的個數
LLen key
示範如上圖
擷取清單片段(不會删除圖檔),左側起點預設為0,右側重點預設為-1
指令: Lrange key start stop
删除指定的值
Lrem key count value (count>0,删除從左邊開始值為value的前count個元素;count=0,删除所有值為value的元素,count<0,删除從右邊開始值為value的前-count個元素)
指令示範如下:
将清單當數組用
擷取指定索引位置的元素值:Lindex key index (相當于數組中的key[index])
設定指定索引位置的元素值:Lset key index value(對key[index]指派)
删除指定索引外的所有元素
Ltrim key start end (用法跟Lrange相似)
向清單中插入元素
Linsert key before|after pivot value (Linsert是從左到右查找值為pivot的元素,根據before或者after決定value的插入位置)
指令示範如下:
從示範中可以看出,插入資料隻在找到的第一個元素處操作
将元素從一個清單轉到另一個清單
指令RpopLpush source destination
很有趣的指令,看起來像是從源清單的右邊彈出元素然後從左邊寫入目的清單
0從list清單右邊轉移到list1清單左邊了
集合類型
集合裡的元素具有唯一性,不具備有序性,
而清單類型則是具有有序性,不具備唯一性,這是兩者最大的差別。
基本指令:
增加元素 Sadd key member [member…]
删除元素 Srem key member [member…]
擷取全部元素: Smembers key
判斷元素是否存在: Sismember key member
指令示範如下:
集合間的運算
差集運算 Sdiff key [key…] (相當于key1-key2-key3…)
交集運算 Sinter key [key…] (相當于 key1∩key2∩key3…)
并集運算 Sunion key [key…] (相當于 key1∪key2∪key3…)
指令示範如下:
運算并儲存結果
Sdiffstore destination key [key…]
Sinterstore destination key [key…]
Suniondtore destination key [key …]
指令示範如下:
擷取集合資訊:
擷取集合中元素個數:Scard key
随即擷取集合中的元素:Srandmember key [count]
從集合中彈出一個元素:Spop key (随機彈出一個元素并移除)
指令示範如下:
有序集合類型
有序集合跟清單一樣是有序的,跟集合一樣,元素是唯一的
基本指令
增加元素:zadd key score member [score member…]
擷取元素分數:zscore key member
擷取排名在某個範圍内的元素清單:
遞增排序擷取元素:zrange key start stop [withscores]
遞減排序擷取元素:zrevrange key start stop [withscores]
已存在的鍵的值還可以做修改:
增加某個元素的分數:zincrby key increment member
指令示範如下:
擷取指定分數範圍的元素:
Zrangebyscore key min max [withscores] [limit offset count] (不包含端點值可以在min,max前加左括号“(”,正負無窮表示為+inf、-inf,limit後offset是查詢結果的第幾個元素開始,count是取多少元素)
擷取集合的資訊
擷取集合中元素的數量:zcard key
擷取指定分數範圍内元素的個數:zcount key min max
擷取元素的排名:升序排序 zrank key member
降序排序 zrevrank key member
指令示範如下:
删除集合的元素
删除一個或多個元素:zrem key member [member..]
按照排名範圍删除元素 zremrangebyrank key start stop
按照分數範圍删除元素:zremrangebyscore key min max
指令示範如下:
集合間的運算
交集:zinterstore destination numkeys key [key…] [weights weight [weight …]] [aggregate sum|min|max]
并集: zunionstore destination numkeys key [key…] [weights weight [weight …]] [aggregate sum|min|max]
Numkeys:參與運算的鍵總數;
Weights :每個鍵的權重
Aggregate:相同元素在結果集的分數
指令示範如下: