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...