redis五種資料型別:string,hash,list,set,zset。五種資料型別各有優點,各司其職。最後兩種資料型別set和zset基本上是一種,zset就是給set加了個排序而已(相當於加了個屬性)。
set是通過hash表實現,增刪改的查詢複雜度都是o(1)。zset相當於set的公升級版本。
下面直接上命令了:
set:無序集合,通過hash table實現,新增,刪除,查詢複雜度都是o(1)
命令:sadd myset hello 向myset集合新增hello元素(不能重複,重複返回0)
smembers myset 檢視myset集合中所有元素
srem myset hello 刪除myset中的hello元素
spop myset 從myset中隨機刪除乙個元素
sdiff myset1 myset2 集合myset1和集合myset2的差集(1有而2沒有的)
sdiffstore myset3 myset1 myset2 將myset1和myset2的差集存入myset3
sinter myset1 myset2 獲取myset1和myset2的交集
sinterstore myset3 myset1 myset2 將myset1和myset2的交集存入myset3
sunion myset1 myset2 獲取myset1和myset2的並集
sunionstore myset3 myset1 myset2 將myset1和myset2的並集存入myset3
smove myset1 myset2 jeyson 將jeyson元素從myset1移到myset2中
scard myset1 獲取myset1中元素個數
sismember myset1 hello 測試hello是否是myset1的元素,是返回1 否則0
srandmember myset1 隨機返回myset1乙個元素,但不刪除
zset:有序集合,為set的公升級版本,增加了乙個順序屬性
命令:zadd myset 1 one 向myset集合新增順序為1的元素one
更新順序也是這個命令 zadd myset 2 one 把one的順序號改為2
zrange myset 0 -1 withscores 獲取集合中所有元素(帶序號)
zrevrange myset 0 -1 withscores 獲取集合中所有元素(帶序號)(降序)
zrange myset 0 -1 獲取集合中所有元素(不帶序號)
zrem myset one 刪除集合中one元素
zincrby myset 3 three 將three的順序號增加3(如果沒有three則建立three,順序為3)
zrank myset one 返回one的索引(不是順序,索引從0開始)(公升序後)
zrevrank myset one 返回one的索引(從大到小)(降序後)
zrangebyscore myset 2 5 withscores 獲取順序為2-5的元素
zcount myset 2 5 返回集合中順序在2-5的元素數量
zcard myset 返回集合中所有元素個數
zremrangebyrank myset 2 5 刪除指定索引區間內(2-5)的元素
zremrangebyscore myset 2 5 刪除指定順序區間內(2-5)的元素
redis之集合型別(set)
redis集合是乙個無序的字串合集。你可以以o 1 的時間複雜度 無論集合中有多少元素時間複雜度都為常量 完成 新增,刪除以及測試元素是否存在的操作。redis集合有著不允許相同成員存在的優秀特性。向集合中多次新增同一元素,在集合中最終只會存在乙個此元素。實際上這就意味著,在新增元素前,你並不需要事...
redis之set集合操作
sadd key members1 members2 向集合中新增乙個元素 smembers key 返回集合中所有的元素 當元素比較多的時候伺服器壓力會比較大 sismember key members 檢查key這個集合中 members 元素是否存在 srem key member 刪除元素中...
redis命令之集合(set)
一 常用命令 1 sadd set key item item 說明 將乙個或多個元素新增到set key中,返回新增成功的個數1 smembers set key說明 獲取set key中所有元素,如果set key儲存的不是乙個集合,返回乙個錯誤。2 sismember set key item...