💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
和散列存储着键与值之间的映射关系类似,有序集合也存储着成员与分值之间的映射,并且提供了分值处理命令,以及根据分值大小有序地获取(fetch)和扫描(scan)成员和分值的命令。这里介绍一些常用命令,以及在 Yii 中的使用。 ZADD > ZADD:ZADD key-name score member \[score member …\] > 将带有给定分值的成员添加到有序集合里面。 ZREM > ZREM:ZREM key-name member \[member …\] > 从有序集合里面移除给定的成员,并返回被移除成员的数量。 ZCARD > ZCARD:ZCARD key-name > 返回有序集合包含的成员数量。 ZINCRBY > ZINCRBY:ZINCRBY key-name increment member > 将 member 成员的分值加上 increment。 ZCOUNT > 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"] ```