Yii redis zset有序集合的使用

 

和散列存儲着鍵與值之間的映射關係相似,有序集合也存儲着成員與分值之間的映射,而且提供了分值處理命令,以及根據分值大小有序地獲取(fetch)和掃描(scan)成員和分值的命令。這裏介紹一些經常使用命令,以及在 Yii 中的使用。redis

ZADDapp

ZADD:ZADD key-name score member [score member …]
將帶有給定分值的成員添加到有序集合裏面。fetch

ZREMspa

ZREM:ZREM key-name member [member …]
從有序集合裏面移除給定的成員,並返回被移除成員的數量。code

ZCARDblog

ZCARD:ZCARD key-name
返回有序集合包含的成員數量。排序

ZINCRBYrem

ZINCRBY:ZINCRBY key-name increment member
將 member 成員的分值加上 increment。class

ZCOUNTtest

ZCOUNT:ZCOUNT key-name min max
返回分值介於 min 和 max 之間的成員數量。

ZRANK

ZRANK:ZRANK key-name member
返回成員 member 在有序集合中的排名。排名從 0 開始。

ZSCORE

ZSCORE:ZSCORE key-name member
返回成員 member 的分值。

ZRANGE

ZRANGE:ZRANGE key-name start stop [WITHSCORES]
返回有序集合中排名介於 start 和 stop 之間的成員,若是給定了可選的 WITHSCORES 選項,那麼命令會將成員的分值也一併返回。

ZREVRANK

ZREVRANK:ZREVRANK key-name member
返回有序集合裏成員 member 的排名,成員按照分值從大到小排序。

ZREVRANGE

ZREVRANGE:ZREVRANGE key-name start stop [WITHSCORES]
返回有序集合給定排名範圍內的成員,成員按照分值從大到小排序。

ZRANGEBYSCORE

ZRANGEBYSCORE:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集合中,分值介於 min 和 max 之間的全部成員。

ZREVRANGEBYSCORE

ZREVRANGEBYSCORE:ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
獲取有序集合中分值介於 min 和 max 之間的全部成員,並按照分值從大到小的順序來返回它們。

ZREMRANGEBYRANK

ZREMRANGEBYRANK:ZREMRANGEBYRANK key-name start stop
移除有序集合中排名介於 start 和 stop 之間的全部成員。

ZREMRANGEBYSCORE

ZREMRANGEBYSCORE:ZREMRANGEBYSCORE key-name min max
移除有序集合中分值介於 min 和 max 之間的全部成員。

 

在 Yii 中使用實例:

// 添加3組成員及其分值
Yii::$app->redis->zadd('testZsetKey', 1, 'a', 2, 'b', 3, 'c');  // 3
// 返回成員數量
Yii::$app->redis->zcard('testZsetKey');   // 3
// 將c成員的分值加3
Yii::$app->redis->zincrby('testZsetKey', 3, 'c');   // 6
// 返回c成員的分值
Yii::$app->redis->zscore('testZsetKey', 'c');   // 6
// 獲取c在有序集合中的排名,排名從0開始
Yii::$app->redis->zrank('testZsetKey', 'c');   // 2
// 返回分值介於1和6之間的成員數量
Yii::$app->redis->zcount('testZsetKey', 1, 6);   // 3
// 移除成員b
Yii::$app->redis->zrem('testZsetKey', 'b');   // 1
// 返回有序集合中全部成員及分值
Yii::$app->redis->zrange('testZsetKey', 0, -1, 'WITHSCORES');   // ["a","1","c","6"]
相關文章
相關標籤/搜索