Redis(七)zset 有序集合

2021-10-16 10:20:37 字數 3690 閱讀 9397

redis 有序集合和集合一樣也是string型別元素的集合,且不允許重複的成員。

不同的是每個元素都會關聯乙個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

有序集合的成員是唯一的,但分數(score)卻可以重複。

[

"user":[

"camellia1":90,

"camellia2":100,

"camellia3":90

]]

1:linux命令使用

(1):新增乙個鍵值對到有序集合。如果 成功則返回1;如果鍵已經存在,返回0

zadd zset-key 90 "camellia1"   // 執行成功返回1

zadd zset-key 100 "camellia2" // 執行成功返回1

zadd zset-key 90 "camellia3" // 執行成功返回1

zadd zset-key 90 "camellia1" // 執行失敗返回0

(2):通過hscore獲取乙個給定鍵camellia1的值。
zscore zset-key "camellia1"               // 返回90
(3):獲取新增的所有元素,檢視剛剛的到底新增了哪幾個值
zrange zset-key 0 -1 withscores

輸出:1)

"camellia1"

2)"90"

3)"camellia3"

4)"90"

5)"camellia2"

6)"100"

(4):刪除乙個鍵,成功返回1,否則,返回0
zrem zset-key "camellia1"   // 返回1
(1):插入乙個鍵值對到zset-key有序集合。1代表插入成功;0元素代表已經存在
// 插入乙個鍵值對到zset-key有序集合。1代表插入成功;0元素代表已經存在

$res

=$redis->zadd(

"zset-key",900,'camellia1'

); // 返回1

(2):使用zscore獲取鍵對應的值。我們試試獲取camellia1的值。
// 取值

$aa=$redis->zscore(

"zset-key","camellia1");

var_dump(

$aa)

; // 返回 900

(3):使用zrange獲取剛剛插入的全部值,看看裡面包含哪些鍵值對
// 獲取剛剛插入的值

$str

=$redis->zrange(

"zset-key",0,-1,true)

;輸出:結果是乙個完整的陣列

array(3)

(4):刪除其中乙個鍵。成功返回1,反之,返回0

$rrr = red

is

−>zr

em("

zset

−key

","90

");/

/返回i

nt1v

ardu

mp

(redis->zrem("zset-key","90"); // 返回int 1 var_dump(

redis−

>zr

em("

zset

−key

","9

0");

//返回

int1

vard

​ump

(rrr);

序號命令及描述

zadd   key score1 member1 [score2 member2] 

向有序集合新增乙個或多個成員,或者更新已存在成員的分數

zcard   key 

獲取有序集合的成員數

zcount   key min max 

計算在有序集合中指定區間分數的成員數

zincrby   key increment member 

有序集合中對指定成員的分數加上增量 increment

zinterstore   destination numkeys key [key ...

] 計算給定的乙個或多個有序集的交集並將結果集儲存在新的有序集合 key 中

zlexcount   key min max 

在有序集合中計算指定字典區間內成員數量

zrange   key start stop [withscores] 

通過索引區間返回有序集合指定區間內的成員

zrangebylex   key min max [limit offset count] 

通過字典區間返回有序集合的成員

zrangebyscore   key min max [withscores]

[limit]

通過分數返回有序集合指定區間內的成員

zrank   key member 

返回有序集合中指定成員的索引

zrem   key member [member ...] 

移除有序集合中的乙個或多個成員

zremrangebylex   key min max 

移除有序集合中給定的字典區間的所有成員

zremrangebyrank   key start stop 

移除有序集合中給定的排名區間的所有成員

zremrangebyscore   key min max 

移除有序集合中給定的分數區間的所有成員

zrevrange   key start stop [withscores] 

返回有序集中指定區間內的成員,通過索引,分數從高到低

zrevrangebyscore   key max min [withscores] 

返回有序集中指定分數區間內的成員,分數從高到低排序

zrevrank   key member 

返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序

zscore   key member 

返回有序集中,成員的分數值

zunionstore   destination numkeys key [key ...] 

計算給定的乙個或多個有序集的並集,並儲存在新的 key 中

zscan   key cursor [match pattern]

[count count]

迭代有序集合中的元素(包括元素成員和元素分值)

以上基本上是我看的redis zset有序集合型別的基本內容,有不足的地方,還請大佬指出。

redis 六 redis的zset(有序集合)

相比於set,zset中會有乙個score屬性,用於set的排名。zadd 向zset中新增元素 sorce value zrem 刪除element zscore 獲取score zincrby 增加score zrange 獲取資料,start到end zrank 通過下標獲取排名 127.0....

redis命令之有序集合(zset)

一 常用命令 1 zadd zset nx xx ch incr score member score member nn 表示只新增,不更新 xx 表示只更新,不新增 ch 表示修改返回值,改操作返回新增元素和修改元素的個數。如果命令中有ch,則分數相等的值不會被記錄到返回的個數中 incr 有這...

Zset(有序集合)

在set的基礎上,增加了乙個值 zadd key nx xx ch incr score member 新增乙個值 score可以設定排序 zrangebyscore key min inf max inf withscores limit offset count 通過score從小到大檢視key...