Redis 使用记录(六)

栏目: 数据库 · 发布时间: 5年前

内容简介:Sorted Set 和 Set 一样,也是 String 类型的集合,且成员唯一。不同的是 Sorted Set会关联一个成员是唯一的,但是

Sorted Set(有序集合)

Sorted Set 和 Set 一样,也是 String 类型的集合,且成员唯一。不同的是 Sorted Set

会关联一个 double 类型的 score (分数),用于进行排序。

成员是唯一的,但是 score 可以重复,如果 score 重复,会使用 字典排序

最大的成员数为 2 32 - 1 个元素(40多亿)。

应用场景

按照分数进行排列

将用户与分数(游戏分数、考试成绩、点赞数)进行关联,然后进行排序。

任务队列

将任务分为不同的等级,例如重要为2,不重要为1,根据优先级安排任务。

实例

<?php
include 'redis.php';

$redis = getRedis();
$redisKey = 'name_scorted_set';

$redis->zAdd($redisKey, 78, 'tom', 78, 'jerry');// 添加成员
echo $redis->zCard($redisKey) . '<br />';// 获取成员数 2
$redis->zIncrBy($redisKey, 2, 'jerry');// 对指定值进行增量
print_r($redis->zRange($redisKey, 0, -1));// 获取指定索引区间的值,从小到大,示例为获取所有值 Array ( [0] => tom [1] => jerry )
echo '<br />';
print_r($redis->zRevRange($redisKey, 0, -1));// 获取指定索引区间的值,从大到小,示例为获取所有值 Array ( [0] => jerry [1] => tom )
echo '<br />';
echo $redis->zScore($redisKey, 'jerry') . '<br />';// 获取指定值的分数 80
echo $redis->zCount($redisKey, 70, 79) . '<br />';// 获取指定分数指定区间的数量 1
print_r($redis->zRangeByScore($redisKey, 70, 80));// 获取指定分数间的数据,从小到大 Array ( [0] => tom [1] => jerry )
echo '<br />';
print_r($redis->zRevRangeByScore($redisKey, 80, 70));// 获取指定分数间的数据,从大到小 Array ( [0] => jerry [1] => tom )
echo '<br />';
echo $redis->zRank($redisKey, 'jerry') . '<br />';// 获取指定值的索引,从小到大 1
echo $redis->zRevRank($redisKey, 'jerry') . '<br />';// 获取指定值的索引,从大到小 0
$redis->zAdd($redisKey, 56, 'emma');
$redis->zRem($redisKey, 'tom');// 移除指定值
print_r($redis->zRange($redisKey, 0, -1));// Array ( [0] => emma [1] => jerry )
echo '<br />';
$redis->zRemRangeByRank($redisKey, 1, 2);// 移除指定排名区间的成员
print_r($redis->zRange($redisKey, 0, -1));// Array ( [0] => emma )
echo '<br />';
$redis->zAdd($redisKey, 38, 'tom', 98, 'jerry');
$redis->zRemRangeByScore($redisKey, 30, 60);// 移除指定分数区间的成员
print_r($redis->zRange($redisKey, 0, -1));// Array ( [0] => jerry )
echo '<br />';

参考资料: 菜鸟教程


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

你不是个玩意儿

你不是个玩意儿

杰伦·拉尼尔 / 葛仲君 / 中信出版社 / 2011-8 / 35.00元

“你不是个玩意儿。” 这句话当然不是骂人,这是一个宣言。人当然不是玩意儿,不是机器,而是人。 在网络化程度越来越高的今天,我们每个人似乎都有足够的理由,无限欣喜地拥抱互联网。然而,你有没有想过互联网那些不完美的设计却是某种潜在的威胁…… 为什么如此多的暴民在社交网站上争吵不休,很多骂人的脏话我们在现实的人际交往中可能从来不会使用,但在匿名网络环境中却漫天飞舞? 互联网的本质......一起来看看 《你不是个玩意儿》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具