php操作redis,有序集合zset

常见的有序集合操作有如下几个:

1、添加成员到集合里 zAdd、zIncrBy

2、取出前N名 zRevRange 

3、删除指定成员 zDelete、zRem、zRemove

4、取出某个成员的排名和分数 zSorce、zRevRank

5、统计数量 zSize、

6、统计指定分数区间的个数 zCount

7、取出满足指定分数区间的成员,总小到大 zRangeByScore

8、取出所有成员 zRange

connect('127.0.0.1', 6379);
if ($result !== true) {
    echo "连接redis失败!";
    exit;
}
$result = $redis->auth('123456'); //密码
if ($result !== true) {
    echo "auth err";
    exit;
}

echo "
";

//有序集合
//常见操作,
echo "1、添加成员到集合里
"; //添加数据到key为sort里 $redis->zAdd('sort', 80, 'mrtwenty'); //存在就修改, 不存在就添加到集合中去 $redis->zAdd('sort', 92, 'xiaohei'); $redis->zAdd('sort', 99, 'zhao'); $redis->zAdd('sort', 90, 'xiaoming'); //A如果不存在,就添加A进入,并初始化值为1,如果存在就给A加1,分数1也可以是负的, $redis->zIncrBy('sort', 1, 'A'); print_r($redis->zRange('sort', 0, -1)); echo "
"; echo "2、取出前三名
"; $list = $redis->zRevRange('sort', 0, 2); print_r($list); echo "取出前三名,包括他们的值
"; $list = $redis->zRevRange('sort', 0, 2, true); print_r($list); echo "
"; echo "3、zDelete、zRem、zRemove 删除指定成员,返回的值1表示成功, 0表示失败
"; $result = $redis->zDelete('sort', 'A'); echo "4、取出某个成员的排名或者分数
"; printf("返回集合中zhao的分数:%d
", $redis->zScore('sort', 'zhao')); //如果返回false表示不存在集合中,0表示第一名 zRevRank 从大到小排名 zRank 从小到大排名 printf("返回zhao在集合中的排名:%d
", $redis->zRevRank('sort', 'zhao')); printf("5、统计数量:%d
", $redis->zSize('sort')); //也可以值zCard printf("6、返回80分到100分之间的个数:%d
", $redis->zCount('sort', 80, 100)); echo "7、取出满足指定分数区间的成员,总小到大
"; $list = $redis->zRangeByScore('sort', 90, 100); //withscores表示是否取出分数,limit用来实现分页 // $list = $redis->zRangeByScore('sort', 90, 100, ['withscores' => true, 'limit' => [0, 2]]); print_r($list); echo "
"; //8、取出所有的key,0表示从第一个开始取,-1表示最后一个 echo "8、取出所有成员:
"; $list = $redis->zRange('sort', 0, -1); print_r($list);

 

你可能感兴趣的:(php,redis)