php操作redis,有序集合zset

7 篇文章 0 订阅

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

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

2、取出前N名 zRevRange 

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

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

5、统计数量 zSize、

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

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

8、取出所有成员 zRange

<?php

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

echo "<pre>";

//有序集合
//常见操作,
echo "1、添加成员到集合里<br/>";
//添加数据到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 "<hr/>";

echo "2、取出前三名<br/>";
$list = $redis->zRevRange('sort', 0, 2);
print_r($list);

echo "取出前三名,包括他们的值<br/>";
$list = $redis->zRevRange('sort', 0, 2, true);
print_r($list);
echo "<hr/>";

echo "3、zDelete、zRem、zRemove 删除指定成员,返回的值1表示成功, 0表示失败<hr/>";
$result = $redis->zDelete('sort', 'A');

echo "4、取出某个成员的排名或者分数<br/>";
printf("返回集合中zhao的分数:%d<br/>", $redis->zScore('sort', 'zhao'));
//如果返回false表示不存在集合中,0表示第一名 zRevRank 从大到小排名 zRank    从小到大排名
printf("返回zhao在集合中的排名:%d<hr/>", $redis->zRevRank('sort', 'zhao'));

printf("5、统计数量:%d<hr/>", $redis->zSize('sort')); //也可以值zCard

printf("6、返回80分到100分之间的个数:%d<hr/>", $redis->zCount('sort', 80, 100));

echo "7、取出满足指定分数区间的成员,总小到大<br/>";
$list = $redis->zRangeByScore('sort', 90, 100);
//withscores表示是否取出分数,limit用来实现分页
// $list = $redis->zRangeByScore('sort', 90, 100, ['withscores' => true, 'limit' => [0, 2]]);
print_r($list);
echo "<hr/>";

//8、取出所有的key,0表示从第一个开始取,-1表示最后一个
echo "8、取出所有成员:<br/>";
$list = $redis->zRange('sort', 0, -1);
print_r($list);

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值