美文网首页
Redis 使用记录(六)

Redis 使用记录(六)

作者: haoyq | 来源:发表于2018-05-03 07:25 被阅读0次

Sorted Set(有序集合)

Sorted Set 和 Set 一样,也是 String 类型的集合,且成员唯一。不同的是 Sorted Set
会关联一个 double 类型的 score(分数),用于进行排序。
成员是唯一的,但是score可以重复,如果score重复,会使用字典排序
最大的成员数为 232 - 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 />';

参考资料:菜鸟教程

相关文章

  • Redis 使用记录(六)

    Sorted Set(有序集合) Sorted Set 和 Set 一样,也是 String 类型的集合,且成员唯...

  • redis + node 使用命令记录

    redis + node 使用记录 > set(key,value,redis.print) >expire(ke...

  • 2020-03-24

    Redis学习记录(一)之Redis的简介及安装使用 Redis作为NoSql较为流行使用的数据库之一,个人觉得还...

  • redis 常用命令

    记录一下redis 使用的命令,redis练习命令官网[http://try.redis.io/] 启动停止命令 ...

  • Redis学习记录(二)--使用Jedis连接

    Redis学习记录(二)--使用Jedis连接 标签(空格分隔): javaWEB 在Java环境中连接Redis...

  • redis使用

    记录使用redis中遇到得问题:1、程序将调用流程得functionId保存在redis中,redis中可能会保存...

  • SparkStreaming之使用redis保存Kafka的Of

    本文主要记录使用SparkStreaming从Kafka里读取数据,并使用Redis保存Offset。 相关文章:...

  • 在centos中安装redis

    记录一下在centos系统下使用源码安装redis的流程 1.配置c++环境 2.使用wget下载redis源码 ...

  • Redis 使用记录(四)

    List (列表) List 是一个简单的 String 列表,按照插入顺序排序。可以添加一个元素到 List 的...

  • Redis 使用记录(二)

    String (字符串) String 类型是 key-value 格式,可以说是最简单、最常用的类型。每个 ke...

网友评论

      本文标题:Redis 使用记录(六)

      本文链接:https://www.haomeiwen.com/subject/ybcalftx.html