python-redis集合模式
無序集合SADD
set集合是直接去重的,只會輸出 xiao hehe
sadd names3 xiao xiao hehe hehe
獲取集合 names3的所有值,集合不能用切片形式獲取值,因為是無序的
SMEMBERS names3
獲取names3對應的集合中元素個數
SCARD names3
兩個集合的差集:
sdiff names3 names4
兩個集合的差集並且得到的結果賦值給新集合n6:
SDIFFSTORE n6 names3 names4
交集:
SINTER names3 names4
判斷names3裏面是否有hehe元素:
SISMEMBER names3 hehe
從一個集合移動到另一個集合:
smove(src, dst, value)
# 將某個成員從一個集合中移動到另外一個集合
隨機獲取一個集合裏面的元素:
SRANDMEMBER names3
#從name對應的集合中隨機獲取 numbers 個元素
srandmember
#在name對應的集合中刪除某些值
srem names3 hehe
並集:
SUNION names3 names4
# 獲取多一個name對應的集合的並集,並將結果保存到dest對應的集合中
sunionstore(dest,keys, *args)
集合names3,names4的並集結果,存放到集合n7中,再用sscan查看
有序集合:ZADD
添加集合 z1:
ZADD z1 10 xiaopang 5 jack 8 rain 4 jane #可以改數字,值不可以更改
獲取集合z1的值(有序的都用range獲取)
ZRANGE z1 0 -1 WITHSCORES(顯示數字)
集合裏元素分數區間:
ZCOUNT z1 4 10(4 10是 min max)
# 自增name對應的有序集合的 name 對應的分數
zincrby(name, value, amount)
# 獲取某個值在 name對應的有序集合中的排行(從 0 開始)
ZRANK z1 xiaopang
# 根據排行範圍刪除
zremrangebyrank(name, min, max)
根據name值獲取分數:
ZSCORE z1 xiaopang
兩個集合之間取交集,並且賦值給新的集合:
ZINTERSTORE z3 2 z1 z2 #2是代表有兩個集合的交集
刪除key,並且設置超時時間:
expire(name ,time)
python-redis集合模式