当前位置: 首页 > 后端技术 > PHP

Redis使用记录(6)

时间:2023-03-29 22:50:31 PHP

SortedSet(有序集合)SortedSet和Set一样,也是String类型的集合,其成员是唯一的。不同的是,SortedSet会关联一个double类型的分数(score)进行排序。成员是唯一的,但分数可以重复。如果分数重复,则使用字典排序。最大的成员是232-1个元素(超过40亿)。应用场景按分数排列。将用户与分数(游戏分数、考试分数、点赞数)关联起来,然后进行排序。任务队列将任务分为不同的级别,比如重要的2个,不重要的1个,按照优先级排列任务。示例zAdd($redisKey,78,'tom',78,'jerry');//添加成员echo$redis->zCard($redisKey).'
';//获取成员个数2$redis->zIncrBy($redisKey,2,'jerry');//增加指定值print_r($redis->zRange($redisKey,0,-1));//获取指定索引范围内的值,从小到大,例子是获取所有值Array([0]=>tom[1]=>jerry)echo'
';print_r($redis->zRevRange($redisKey,0,-1));//获取指定索引区间的值,从大到小,示例为获取所有值数组([0]=>杰瑞[1]=>汤姆)echo'
';回声$redis->zScore($redisKey,'jerry')。'
';//获取指定值80echo的分数$redis->zCount($redisKey,70,79).'
';//获取指定分数范围的个数1print_r($redis->zRangeByScore($redisKey,70,80));//获取指定分数范围的数据,从小到大Array([0]=>tom[1]=>jerry)echo'
';print_r($redis->zRevRangeByScore($redisKey,80,70));//获取分数之间的指定数据,从大到小数组([0]=>jerry[1]=>tom)echo'
';回声$redis->zRank($redisKey,“杰瑞”)。'
';//获取指定值的索引,从小到大echo$redis->zRevRank($redisKey,'jerry').'
';//获取指定值的索引,从大到小0$redis->zAdd($redisKey,56,'emma');$redis->zRem($redisKey,'tom');//移除指定值print_r($redis->zRange($redisKey,0,-1));//Array([0]=>emma[1]=>jerry)echo'
';$redis->zRemRangeByRank($redisKey,1,2);//移除指定排名区间的成员print_r($redis->zRange($redisKey,0,-1));//Array([0]=>emma)echo'
';$redis->zAdd($redisKey,38,'tom',98,'jerry');$redis->zRemRangeByScore($redisKey,30,60);//移除成员指定分数范围的print_r($redis->zRange($redisKey,0,-1));//Array([0]=>jerry)echo'
';参考:菜鸟教程