1. 程式人生 > >Redis---Redis操作之有序集合

Redis---Redis操作之有序集合

car ges inter red ima .com display cor none

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

zadd(name, *args, **kwargs)
#在name對應的有序集合中添加元素

技術分享圖片

--------------------------------------------------------------------------------------------------------------------------------------

zcard(name)
# 獲取name對應的有序集合元素的數量

技術分享圖片

--------------------------------------------------------------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------------------------------------------------------------

zincrby(name, value, amount)
# 自增name對應的有序集合的 name 對應的分數
--------------------------------------------------------------------------------------------------------------------------------------

r.zrange( name, start, end, desc=False, withscores=False, score_cast_func=float)
# 按照索引範圍獲取name對應的有序集合的元素 
# 參數:
    # name,redis的name
    # start,有序集合索引起始位置(非分數)
    # end,有序集合索引結束位置(非分數)
    # desc,排序規則,默認按照分數從小到大排序
    # withscores,是否獲取元素的分數,默認只獲取元素的值
    # score_cast_func,對分數進行數據轉換的函數 
# 更多:
    # 從大到小排序
    # zrevrange(name, start, end, withscores=False, score_cast_func=float)
 
    # 按照分數範圍獲取name對應的有序集合的元素
    # zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float)
    # 從大到小排序
    # zrevrangebyscore(name, max, min, start=None, num=None, withscores=False, score_cast_func=float)

技術分享圖片

--------------------------------------------------------------------------------------------------------------------------------------

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

技術分享圖片

--------------------------------------------------------------------------------------------------------------------------------------

zrem(name, values)
# 刪除name對應的有序集合中值是values的成員  # 如:zrem(‘zz‘, [‘s1‘, ‘s2‘])
--------------------------------------------------------------------------------------------------------------------------------------

zremrangebyrank(name, min, max)
# 根據排行範圍刪除

技術分享圖片

--------------------------------------------------------------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------------------------------------------------------------

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

技術分享圖片

--------------------------------------------------------------------------------------------------------------------------------------

zinterstore(dest, keys, aggregate=None)
# 獲取兩個有序集合的交集,如果遇到相同值不同分數,則按照aggregate進行操作
# aggregate的值為:  SUM  MIN  MAX

技術分享圖片

--------------------------------------------------------------------------------------------------------------------------------------

zscan(name, cursor=0, match=None, count=None, score_cast_func=float)
zscan_iter(name, match=None, count=None,score_cast_func=float)
# 同字符串相似,相較於字符串新增score_cast_func,用來對分數進行操作

Redis---Redis操作之有序集合