redis有序集合使用详解

发布时间:2017-04-06编辑:lianpenglin阅读(1432)

    本文将对操作有序集合的命令进行介绍,其中包括有序集合添加新元素的命令、更新已有元素的命令,以及对有序集合进行交集运算和并集计算的命令。阅读本文可以加深读者对有序集合的认识。

    下表展示了一部分常用的有序集合命令。

    命令

    用例和描述

    ZADD

    ZADD key-name score member [sorce member...]--将带有给定分值的成员添加到有序集合里面

    ZREM

    ZREM key-name member [member...]--从有序集合里面移除给定的成员,并返回被移除成员的数量

    ZCARD

    ZCARD key-name ---返回有序集合包含的成员数量

    ZINCRBY

    ZINCRBY key-name increment member --将member成员的分值加上increment

    ZCOUNT

    ZCOUNT key-name min max --返回分值介于min和max之间的成员数量

    ZRANK

    ZRANK key-name member--返回成员在有序集合中的排名

    ZSCORE

    ZSCORE key-name member --返回成员member的分值

    ZRANGE

    ZRANGE key-name start stop [WITHSCORES]--返回有序集合中排名介于start和stop之间的成员,如果给定了可选的WITHSCORES选项,那么命令会将成员的分值也一并返回

    下面我们来看一下代码清单:

    <?php
    /*
     * redis有序集合练习
     */
    $redis = new Redis();
    $redis->connect('127.0.0.1',"6379");
    echo $redis->zAdd('key-set',1,'a');//添加元素
    echo $redis->zAdd('key-set',2,'b');//添加元素
    echo $redis->zAdd('key-set',3,'c');//添加元素
    echo $redis->zAdd('key-set',4,'d');//添加元素
    echo "<br/>";
    echo $redis->zCard('key-set');//返回有序集合包含的元素数量
    echo "<br/>";
    echo $redis->zIncrBy('key-set',4,'a');//将member成员分值加上4
    echo "<br/>";
    echo $redis->zScore('key-set','b');//返回成员b的分值
    echo "<br/>";
    echo $redis->zRank('key-set','b');//返回成员C在集合中的排序
    echo "<br/>";
    echo $redis->zRange('key-set',1,3);//返回从排名1到3的所有元素,是一个数组
    echo "<br/>";
    echo $redis->zCount('key-set',1,8);//返回分值从1到8的元素数量
    echo "<br/>";
    echo $redis->zRem('key-set','a');//从集合中删除元素a

    另外一些非常有用的有序集合命令:

    命令

    用例和描述

    ZREVRANK

    ZREVRANK key-name member 返回有序集合成员member的排名,成员按照分值从大到小排序

    ZREVRANGE

    ZREVRANG key-name start stop [WITHSCORES] 返回有序集合给定排名范围内的成员,成员按照分值大小从大到小排序

    ZRANGEBYSCORE
    ZRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]--返回有序集合中,分值介于min和max之间的所有成员
    ZREVRANGEBYSCOREZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 返回有序集合中分值介于min和max之间的所有成员,并按照分值大小从大到小的顺序来返回他们
    ZREMRANGEBYRANK
    ZREMRANGEBYRANK key-name start stop--移除有序集合中排名介于start和stop之间的所有成员
    ZREMRANGEBYSCOREZREMRANGEBYSCORE key-name min max --移除有序集合中分值介于min和max之间的所有成员
    ZINTERSTORE



标签redis php

如果对你有用打赏一下吧!