python學習之-- redis模塊操作 集合和有序集合


redis 模塊操作之 集合set和有序集合zset

Set 集合操作,不允許重復的列表
sadd(name,value):name對應的集合中添加元素
scard(name):獲取name對應的集合中元素個數
sdiff(keys,*args):差集
sdiffstore(dest,keys,*args):差集存到新的地方
sinter(keys,*args):交集
sinterstore(dest,keys,*args):交集另外存儲
sismember(name,value):判斷是否有對應的值
smembers(name):獲取集合所有成員
smove(src,dst,value):從一個value從src集合中移動到dst集合中
spop(name):從集合的右側移除一個成員,並將其返回
srandmember(name,number):從name對應的集合中隨機獲取member個元素。
srem(name,value):在name對應的集合中刪除某些值
sunion(keys,*args):並集
sunionstore(dest,keys,*args):並集另外存儲
sscan(name,cursor=0,match=None,count=None)
sscan_iter(name,match=None,count=None)
同字符串的操作,用於增量迭代分批獲取元素,避免內存消耗過大
添加舉例:
r.sadd('sname','jack','bard') #添加數據
print(r.smembers('sname')) # 獲取所有的值

有序集合:在集合的基礎上,為每個元素排序,元素的排序需要根據另外一個值來進行比較,所以,對於有序集合,每一個元素有
2個值,即:值和分數,分數專門用來做排序。
zadd(name,*arg,**kwargs):在name對應的有序集合中添加元素
zadd('zz',1,'n1',2,'n2') # 其中數字為權重值
獲取值:zrange zz 0 -1
注意:當添加重復項是,修改的只是權重值,實際數據還是唯一的。
zrange zz 0 -1 withscores :可以同時顯示數據和對應的權重值
zcard(name):獲取集合元素的數量
zcount(name,min,max):獲取集合中權重在min,max之間的個數
zincrby(name,value,amount):自增有序集合中name對應的分數
zrange(name,start,end,desc=False,withscores=False,score_cast_func=float)
按照索引范圍獲取name對應的有序集合的元素
start:有序集合索引的起始位置(非分數)
end:索引的結束位置(非分數)
desc:排序規則,默認按照分數從小到大排序
withscores:是否獲取元素的分數
score_cast_func:對分數進行數據轉換的函數
zrank(name,value):獲取某個值在name對應的有序集合中的排序(從0開始)
zrangebylex(name,min,max,start=None,num=None)
當有序集合的所有成員都具有相同的分值時,有序集合的元素會根據成員的值
zrem(name,values):刪除值
zremrangebyrank(name,min,max):根據排行范圍刪除,
zremrangebysore(name,min,max):根據分數范圍刪除
zremrangebylex(name,min,max):根據值返回刪除。
zscore(name,value):獲取name對應的有序集合中value對應的分數
zinterstore(dest,keys,aggregate=None):獲取有序集合的交集,如果遇到相同值,則按照aggregate操作
aggregate值為:sum,min,max
zunionstore(dest,keys,aggregate=None):獲取2個集合的並集,參數同上
zcan(name,cursor=0,match=None,count=None,score_cast_func=float)
# 同字符串相似,相較於字符串新增score_cast_func,用來對分數進行操作


免責聲明!

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



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