Python操作Redis之五 有序集合

2021-10-01 17:14:53 字數 3163 閱讀 8121

5. 有序集合

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

zadd(name, *args, **kwargs)

#在name對應的有序集合中新增元素

r.zadd(

"zset_name"

,"a1",6

,"a2",2

,"a3",5

)#或r.zadd(

'zset_name1'

, b1=

10, b2=

5)

zcard(name)

#獲取有序集合內元素的數量
zcount(name, min, max)

#獲取有序集合中分數在[min,max]之間的個數

print

(r.zcount(

"zset_name",1

,5))

zincrby(name, value, amount)

#自增有序集合內value對應的分數

r.zincrby(

"zset_name"

,"a1"

,amount=2)

#自增zset_name對應的有序集合裡a1對應的分數

zrange( name, start, end, desc=false, withscores=false, score_cast_func=float)

#按照索引範圍獲取name對應的有序集合的元素

aa=r.zrange(

"zset_name",0

,1,desc=

false

,withscores=

true

,score_cast_func=

int)

print

(aa)

'''引數:

name redis的name

start 有序集合索引起始位置

end 有序集合索引結束位置

desc 排序規則,預設按照分數從小到大排序

withscores 是否獲取元素的分數,預設只獲取元素的值

score_cast_func 對分數進行資料轉換的函式'''

zrevrange(name, start, end, withscores=false, score_cast_func=float)

#同zrange,集合是從大到小排序的
zrank(name, value)、zrevrank(name, value)

#獲取value值在name對應的有序集合中的排行位置(從0開始)

print

(r.zrank(

"zset_name"

,"a2"))

print

(r.zrevrank(

"zset_name"

,"a2"))

#從大到小排序

zscore(name, value)

#獲取name對應有序集合中 value 對應的分數

print

(r.zscore(

"zset_name"

,"a1"

))

zrem(name, values)

#刪除name對應的有序集合中值是values的成員

r.zrem(

"zset_name"

,"a1"

,"a2"

)

zremrangebyrank(name, min, max)

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

#根據分數範圍刪除
zinterstore(dest, keys, aggregate=none)

r.zadd(

"zset_name"

,"a1",6

,"a2",2

,"a3",5

)r.zadd(

'zset_name1'

, a1=

7,b1=

10, b2=5)

# 獲取兩個有序集合的交集並放入dest集合,如果遇到相同值不同分數,則按照aggregate進行操作

# aggregate的值為: sum min max

r.zinterstore(

"zset_name2",(

"zset_name1"

,"zset_name"

),aggregate=

"max"

)print

(r.zscan(

"zset_name2"

))

zunionstore(dest, keys, aggregate=none)

#獲取兩個有序集合的並集並放入dest集合,其他同zinterstore,
其他常用操作

delete(*names)

#根據name刪除redis中的任意資料型別
exists(name)

#檢測redis的name是否存在
keys(pattern=』*』)

#根據* ?等萬用字元匹配獲取redis的name
expire(name ,time)

#為某個name設定超時時間
rename(src, dst)

#重新命名
move(name, db))

#將redis的某個值移動到指定的db下
randomkey()

#隨機獲取乙個redis的name(不刪除)
type(name)

#獲取name對應值的型別

redis基本操作(五)

keys 所有的key值 支援模糊匹配 exists key 判斷key是否存在,存在返回1 expire key time 設定key的存活時間是time秒 ttl key 檢視key的剩餘時間 persist key 取消key的過期時間 select num 選擇第num個資料庫 0 15 m...

redis系列(五)之list型別的基礎操作

redis系列 五 之list型別的基礎操作 list型別是乙個鍊錶結構的集合,其主要功能有push pop 獲取元素等。更詳細的說,list型別是乙個雙端鍊錶的結構,我們可以通過相關操作進行集合的頭部或者尾部新增刪除元素,list的設計非常簡單精巧,即可以做為棧,又可以作為佇列。新增元素 push...

Python操作Redis之mset和mget

雖然有set和get操作,但是乙個乙個的操作終究還是麻煩,所以,我們還有mset和mget命令 python在進行mset操作時,只需要傳入乙個dict即可,進行mget操作,則傳入乙個list 看 coding utf 8 created on 2015 9 8 author kwsy impor...