Redis使用Zset做一个排行榜,当权值一样时,怎么按时间排序

2023-11-06

前言

zset是根据score进行排序,当score相同时,默认按照member的字典序进行排序。案例说明:

127.0.0.1:6379> zadd t1 2 c 1 b 2 a
(integer) 3
127.0.0.1:6379> zrevrange t1 0 -1
1) "c"
2) "a"
3) "b"

在Redis的有序集合中,元素的排列顺序是根据它们对应的score值来排序的。在这个例子中,我们向t1有序集合中添加了三个元素:a、b和c。其中,a和c的score值都是2,而b的score值是1。因为所有元素的score值都不同,所以它们会按照score值从小到大的顺序排序。

由于a和c的score值相同,因此,它们的排列顺序需要使用字典序来比较。在这里,字典序遵循的是ASCII码表的顺序,即A~Z的ASCII码值依次升序排列,因此c在a的前面。

需求:当score一样时,怎么按时间排序,即最新的排在前面

关键:只要重新设计score组成即可,将时间戳放入小数部分即可。也就是:score.timeStamp
对上述案例重新设计:

127.0.0.1:6379> clear
127.0.0.1:6379> zadd t1 2.1681804874177 c 1.1681804874331 b 2.1681804894121 a
(integer) 3
127.0.0.1:6379> zrevrange t1 0 -1
1) "a"
2) "c"
3) "b"

需求完成。
在代码层面只要获取下系统当前的时间戳拼接一下即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis使用Zset做一个排行榜,当权值一样时,怎么按时间排序 的相关文章

随机推荐

  • 免费的crm系统部署在自己的服务器,CRM软件的三种部署方式

    企业部署CRM软件有三种不同选择 他们在成本 风险和利益上各有不同 本文将逐一介绍这三类CRM部署方式 本地部署 软件托管和服务器代管 软件即服务 一 CRM本地部署方式 这是将软件客户端 服务器部署在客户本地服务器的一种方式 这种方式为客
  • 神经网络学习小记录63——Keras 图像处理中注意力机制的代码详解与应用

    神经网络学习小记录63 Keras 图像处理中注意力机制的解析与代码详解 学习前言 什么是注意力机制 代码下载 注意力机制的实现方式 1 SENet的实现 2 CBAM的实现 3 ECA的实现 注意力机制的应用 学习前言 注意力机制是一个非
  • 關於 React 中的 Hooks - 完全上手指南

    關於 React 中的 Hooks 完全上手指南 前言 正文 什麼是 Hooks useState 自定義 Hooks useEffect useRef useLayoutEffect useCallback useMemo useRedu
  • C语言进阶——4.宏定义

    C语言进阶 4 宏定义 1 宏定义是什么 宏是用来表示一段代码的标识符 宏也是标识符 也要满足标识符的规则 但通常习惯使用大写字母和下划线命名 2 宏定义怎么用 宏定义通常有三种用法 当作常量使用 当作函数使用 编译预处理 2 1 宏定义常
  • 关于idea出现java: 无效的目标发行版: 8、9、11问题的解决方式

    1 首先Project settings 将环境设置为1 8 2 如果有多个module都要设置一下 3 都设置好了之后点击apply应用 点击ok关闭设置页面 然后点击File gt settings 进入设置页面 找到 Java Com
  • 腾讯策略协作型 AI「绝悟」升级至王者荣耀电竞职业水平

    感谢阅读腾讯AI Lab微信号第80篇文章 本文将介绍腾讯策略协作型 AI 绝悟 最新进展 达到王者荣耀电竞职业水平 长线策略及团队协作能力全面提升 腾讯 AI Lab 与王者荣耀共同探索的前沿研究项目 策略协作型 AI 绝悟 今天在吉隆坡
  • 经典排序算法:快速排序(Quick Sort)

    快速排序算法 快速排序算法被称为20世纪十大算法之一 是最重要的算法之一 是一定要掌握和熟练的 快速排序的基本思想是 分治法 1 先从数列中取出一个数作为基准数 2 分区过程 将比这个数大的数全放到它的右边 小于或等于它的数全放到它的左边
  • jdbc:mysql://127.0.0.1:3306/test_: No suitable driver found for jdbc:mysql://127.0.0.1:3306/bank

    今天遇到个很奇怪的问题 项目登录上去之后 去修改某张表的一条记录 突然报错 No suitable driver found for jdbc mysql 127 0 0 1 3306 bank 项目可以登录 那就不是数据库配置文件的问题
  • 状态压缩技巧:动态规划的降维打击

    刷题认准labuladong 东哥带你手把手撕力扣 点击下方卡片即可搜索 我们号之前写过十几篇动态规划文章 可以说动态规划技巧对于算法效率的提升非常可观 一般来说都能把指数级和阶乘级时间复杂度的算法优化成 O N 2 堪称算法界的二向箔 把
  • 史上最全的maven pom.xml文件教程详解

    原文地址 http www zuidaima com share 1781583829978112 htm
  • 部署Prometheus

    1 解压prometheus压缩包 root node5 tar xf prometheus 2 38 0 linux amd64 tar gz C usr local 2 对压缩后的文件做软连接 root node5 ln sv usr
  • 人工智能技术的应用越来越广,极大促进了无人机产业的发展

    备受关注的第二十三届中国国际高新技术成果交易会 简称 高交会 于12月27日在深圳开幕 本届高交会分别在深圳会展中心 福田 和深圳国际会展中心 宝安 同期举办 吸引了众多优秀展商一展风采 本届高交会采用了 线上 线下 联动的方式 线下展览总
  • Shell脚本基础介绍

    shell基础简介 编写脚本通常使用某种基于解释器的编程语言 而shell脚本不过就是一些文件 我们能将一系列需要执行的命令写入其中 然后通过shell来执行这些脚本 进入Linux系统 Ubuntu 打开终端Terminal 表示普通用户
  • 【深度学习】- NLP系列文章之 1.文本表示以及mlp来处理分类问题

    系列文章目录 1 文本分类与词嵌入表示 mlp来处理分类问题 2 RNN LSTM GRU三种方式处理文本分类问题 3 评论情绪分类 还是得开个坑 最近搞论文 使用lstm做的ssd的cache prefetching 意味着我不能再划水了
  • JS实现一键回到顶部的功能(兼容所有浏览器,超级详细)

    我们在浏览网页的时候 大部分都有一个一键回到顶部的按钮 无论是pc端还是移动端 这个功能都很常见 我在一次面试的时候 也要求手写这个功能 首先我们新建一个空页面 把body的高度设置为3000px 这样做的目的是让浏览器出现滚动条 不然我们
  • 动态数组的实现

    public class MyArrayList
  • 栈与队列 数据结构 C语言

    目录 一 栈 1 类型定义 2 接口函数 3 功能实现 初始化栈 进栈 删除栈顶 出栈 销毁栈 其他功能 一 栈 先进后出 后进先出 1 类型定义 typedef int STDataType typedef struct Stack ST
  • 如何用Python进行大数据挖掘和分析?快速入门路径图!

    大数据无处不在 在时下这个年代 不管你喜欢与否 在运营一个成功的商业的过程中都有可能会遇到它 什么是 大数据 大数据就像它看起来那样 有大量的数据 单独而言 你能从单一的数据获取的洞见穷其有限 但是结合复杂数学模型以及强大计算能力的TB级数
  • main函数参数int main(int argc, char *argv[])解析

    main函数可以不带参数 也可以带参数 这个参数可以认为是 main函数的形式参数 C语言规定main函数的参数只能有两个 习惯上这两个参数写为argc和argv 所以C99标准中规定只有以下两种定义方式是正确的 int main void
  • Redis使用Zset做一个排行榜,当权值一样时,怎么按时间排序

    前言 zset是根据score进行排序 当score相同时 默认按照member的字典序进行排序 案例说明 127 0 0 1 6379 gt zadd t1 2 c 1 b 2 a integer 3 127 0 0 1 6379 gt