集合set和有序集合zset的操作


集合Set

redis集合Set的概念和python的集合概念一致。集合是去重的不重復,無序的。

#1 sadd(name, values)
name對應的集合中添加元素
如	r.sadd('num1', 1,2,3,4,5) # num1 = {b'4', b'1', b'2',b'3', b'5'} 無序的

#2 scard(name)
獲取name對應的集合中元素個數   


#3 sunion(keys, *args)
獲取多一個name對應的集合的並集
如
	num3 = r.sunion('num1', 'num2') # 並集

#4 sinter(keys, *args)
獲取多一個name對應集合的交集


#5 sdiff(keys, *args)
在第一個name對應的集合中且不在其他name對應的集合的元素集合, 差集


#6 sismember(name, value)
檢查value是否是name對應的集合的成員, 返回布爾值


#7 smembers(name)
獲取name對應的集合的所有成員
如
	r.smenmers('num1') # {b'1', b'2', b'4', b'5', b'3'}


#8 spop(name)
從集合中隨機移除一個成員,並將其返回


#9 srandmember(name, numbers)
從name對應的集合中隨機獲取 numbers 個元素
如
	r.srandmember('num1', 3) # 隨機返回三個元素 [b'3', b'5', b'2']

    
#10 srem(name, values)
在name對應的集合中刪除某些值
如
	r.srem('num1', 1, 2) # 刪除元素1和2

    
#11 sscan_iter(name, match=None, count=None)
同字符串的操作,用於增量迭代分批獲取元素,避免內存消耗太大

有序集合Zset

有序集合,在集合的基礎上,為每個元素排序;

元素的排序需要根據另外一個值來進行比較,所以,對於有序集合,每一個元素有兩個值,即:值和分數,分數專門用來做排序。

#1 zadd(name, *args, **kwargs)
在name對應的有序集合中添加元素
如:
	print(r.zadd("zz", {"n1":1,"n2":2,"n3":3,"n4":4}))
    
#2 zcard(name)
獲取name對應的有序集合元素的數量


#3 zcount(name, min, max)
獲取name對應的有序集合中,分數在[min,max]之間的元素的個數


#4 zincrby(name, value, amount)
自增name對應的有序集合的 name 對應的分數
如
	r.zincrby('znum1', 20, 'n3')  # 'n3' = 22


#5 zrange( name, start, end, desc=False, withscores=False, score_cast_func=float)
按照索引范圍獲取name對應的有序集合的元素
參數:
    name    redis的name
    start   有序集合索引起始位置
    end     有序集合索引結束位置
    desc    排序規則,默認按照分數從小到大排序
    withscores  是否獲取元素的分數,默認只獲取元素的值
    score_cast_func 對分數進行數據轉換的函數
如
	aa=r.zrange("znum1",0,1,desc=False,withscores=True,score_cast_func=int)
	print(aa)	# [(b'n1', 1), (b'n2', 4)]   
 

#6 zscore(name, value)
獲取name對應有序集合中,value對應的分數



#7 zrank(name, value)
獲取某個值在name對應的有序集合中的排行(從0開始)
# 更多:zrevrank(name, value),從大到小排序


#8 zrem(name, values)
刪除name對應的有序集合中值是values的成員
如:
	zrem('zz', ['s1', 's2'])
    
    
#9 zremrangebyrank(name, min, max)
根據排行范圍刪除,即 '索引值'刪除


#10 zremrangebyscore(name, min, max)
根據分數范圍刪除


#11 zinterstore(dest, keys, aggregate=None)
獲取兩個有序集合的交集,如果遇到相同值不同分數,則按照aggregate進行操作
參數
	dest 生成的交集
    keys 元組,如 ('znum1', 'znum2')
	aggregate的值為:  SUM  MIN  MAX
如:
	r.zinterstore('znum3', ('znum1', 'znum2'), aggregate='sum')
        
        
        
#12 zunionstore(dest, keys, aggregate=None)
獲取兩個有序集合的並集,如果遇到相同值不同分數,則按照aggregate進行操作
# aggregate的值為:  SUM  MIN  MAX


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM