redis:Sorted Set数据类型

Redis数据类型深掘:如何有效使用List,Set和Sorted Set List(列表) 定义:List 是一个字符串列表,按插入顺序排序。它是可重复的集合,允许存储多个相同值。 主要命令:LPUSH/RPUSH、LPOP/RPOP、LRANGE 等。 适用场景: 消息队列:可以利用 LPUSH 与 RPOP 命令实现简单的消息队列。 时间线:社交网络中用户的动态时间线可以用列表来实现,新的动态使用 LPUSH 插入到列表头部。 Sorted Set(有序集合) 定义:Sorted Set 是有序集合,集合中的每个成员都关联着一个评分(score),根据评分自动进行升序排序。 阅读详情

https://blog.youkuaiyun.com/github_26672553/article/details/81869719
前面我们使用Hash数据类型来缓存新闻数据,把新闻内容拆分成各个字段。

以id为101的新闻为例:
新闻ID:101;
新闻标题:xxx;
其他字段:xxxx;
新闻点击量:99

有个需求是:当每次访问到这条新闻的时候,点击量是需要+1的。
使用Hash数据类型,是可以针对某个字段进行修改的。

但是,但是,如果我们要获取 点击量排行榜呢?

Sorted Set

Sorted Set被称为有序集合(它里面自带了一个score),特别适合完成排行榜功能。

zadd news 19 news101
#我们可以理解为向名为news这个集合,加入一个元素叫做news101,其score是19

我们一个系统除了新闻模块,还可能有评论模块、订单模块、用户模块,这些都要有单独的集合名称。

如果我们有5条新闻,要保存去点击量:

zadd news 11 news101 22 news102 33 news103 44 news104 55 news105 

会按照score的值正排序。

查看数据
我们学习List类型的时候,可以用lrang来查看数据
同样

#查看第1条到最后一条
127.0.0.1:6379>zrange news 0 -1
1) "news101"
2) "news102"
3) "news103"
4) "news104"
5) "news105"

#带score查看
127.0.0.1:6379>zrange news 0 -1 withscores
1) "news101"
2) "11"
3) "news102"
4) "22"
5) "news103"
6) "33"
7) "news104"
8) "44"
9) "news105"
10) "55"

查看排名

比如我们要查看新闻id为101的这条新闻排名

127.0.0.1:6379>zrank news news101
(integer) 0 
127.0.0.1:6379>zrank news news105
(integer) 4 

注意:模式是按score值正序排的。

按score值的排倒序:

zrevrank news news101
#正序 取前三名
zrang news 0 2
#倒序 取前三名
zrevrang news 0 2

给指定元素的score加分

#加1分
127.0.0.1:6379>zincrby news 10 news101 #返回加分后的结果值,如果元素不存在则添加
"21"
127.0.0.1:6379>zscore news 10 news101 
"21"

根据分数查看排行榜

#取分数15~22的
zrangebyscore news 15 22
zrevrangebyscore news 22 15
Redis 五大数据类型(String、List、Hash、Set 及 Zset) 文章目录一、String 数据类型1.概述2.命令示例2.1 EXISTE、APPEND、GET、SET、STRLEN2.2 INCR、DECR、DEL、INCRBY、DECRBY2.3 GETSET、SETEX、TTL、SETNX2.4 SETRANGE、GETRANGE2.5 MSET、MGET、MSETNX二、List 数据类型1.概述2.命令示例2.1 LPUSH、LPUSHX、LRANGE、LPOP/LIEN2.2 LREM、LSET、LINDEX、LTRIM2.4 LINSERT2.5 RPUS 阅读详情

相关推荐

Delta并联机械手-Codesys实现以及正解逆解研究

由于Codesys的Robotics模块有Delta并联机械手的运动模型,因此借助Codesys的机械手运动模型,研究自己的正解逆解算法。

weixin_42386991的博客 5561

redis的五种数据类型---Sorted Set类型

前言        有序集合类型是Redis五种数据类型中最高级的、也是最复杂的类型。        继上篇讲解set后,我们来看set与sorted set区别        与set相比,sorted sets就是将set中的元素增加一个权重参数:score,使得集合中元素能够按score有序排列,是插入有序的,即自动排序。这里需要注意的是尽管sorted-sets的成员必须是唯一的

odelia的博客 3563

《遥感大模型生产级实战:从数据到决策的端到端AI工程》系列第三部分:城市洪涝灾害应急响应与评估平台实战-文章 14:项目二启动与多源异构数据对齐

我们将系统性地梳理城市洪涝场景下的所有关键数据源,从天上的卫星(光学与SAR)、空中的无人机,到地面的物联网传感器和社交媒体信息流,深入剖析每种数据在洪涝响应中的独特价值、获取方式与内在局限性。本章的核心将是一个详尽的、生产级的数据对齐技术全景,我们将分步解决三大核心对齐难题:空间对齐(将所有数据投影到统一的地理坐标系)、时间对齐(处理不同采样频率的时间序列)以及最困难的语义对齐(将文本描述与物理观测相关联)。

panshengwu的博客 2003

Redis中的SortedSet存储类型

Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。在Sorted-Set中添加、删除或

lapland的博客 2176

SVDD和OCSVM的比较

OCSVM(one class support vector machine)即单类支持向量机,最先提出的文献为:Estimating the support of a high-dimensional distribution.该模型 将数据样本通过核函数映射到高维特征空间,使其具有更良好的聚集性,在特征空间中求解一个最优超平面实现目标数据与坐标原点的最大分离,如图1: 坐标原...

qq_33880788的博客 1万+

maxwell 平面变压器仿真(一)

在学习开关电源设计的时候,我们难免要设计变压器,采用有限元仿真软件MAXWELL 可以帮助我们确定变压器的励磁电感,漏感等参数。对于我们的理论分析大有裨益。但是苦于这破软件的教程真的是相当的零散,我相信大家用起来也总是苦于没有系统的教程指导,撰写本文的目的有两个,一个是记录自己使用的一些问题,一个是给大家提供一个可以参考的文档。

qq_45405656的博客 8243

lrang命令

返回存储在 key 的列表里指定范围内的元素。 start 和 end 偏移量都是基于0的下标, 即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。 偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。 在不同编程语言里,关于求范围函数的一致性 需要注意的是,如果你有一个

feimo 2884

硬件工程师必看:5种ESD保护电路设计实战解析(附电路图)

本文为硬件工程师深度解析5种实战ESD保护电路设计,涵盖TVS二极管、专用保护芯片、片上防护及高速射频场景方案。通过具体电路图,详解工作原理、选型要点及PCB布局黄金法则,重点强调ESD防护设计中的能量泄放路径管理与低阻抗实现,助力提升产品可靠性。

xk7n92h3p5m的博客 637

Redis的sorted-set数据类型

一、概述: Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。 在Sor

Howinfun的博客 663

【硬件开源实战】STM32G070RBT6开发板从设计到避坑全解析

本文全面解析了STM32G070RBT6开发板从硬件设计到避坑的实战经验。详细介绍了电源设计、时钟电路、PCB布局等关键环节,分享了成本控制、焊接测试、软件开发和外设驱动的实用技巧,帮助开发者高效完成项目开发。

weixin_26897585的博客 233

Android软键盘系统深度解析:架构、原理与实现

Android软键盘系统深度解析:架构与实现原理 本文系统剖析了Android软键盘的核心工作机制。作为系统级输入服务,软键盘具有双重属性:既是可安装的独立应用,又深度集成于系统框架中。文章详细解读了软键盘的系统架构,包括其与InputMethodManagerService(IMMS)和WindowManagerService(WMS)的交互机制,以及通过InputConnection实现的跨进程通信流程。同时分析了输入法窗口的特殊管理策略、布局调整模式,并深入探讨了输入预测引擎的实现原理,包括词典加载、

保持专注,保持热爱 114

Redis SortedSet 中 score 的精度问题

一、问题发现 通过 jedis 往 sortedset 中添加了个成员,并且设定了一个Double 类型的分数时,精度出现了问题 测试代码如下: @Test public void zadd(){ jedis.zadd("test:cli", 13.36, "mb1"); } 如果用 jedis 的 api 来获取 score 的话一切正常 @Test public vo...

瓜牛呱呱的博客 8874

SAP成本核算的核心逻辑

SAP成本核算采用"计划-归集-分析"闭环管理,以CO模块为核心,集成PP、MM等模块。核算前需配置标准成本控制范围、成本中心等主数据。标准成本通过BOM和工艺路线计算(CK11N),采购和生产过程记录实际成本差异。制造费用通过成本中心归集,作业成本按实际耗用量分配。完工产品按标准成本入库,月末通过KO88结算工单差异,物料分类账(CKMLCP)还原实际成本。整个流程实现FI与CO数据同步,确保账务一致。关键事务码包括CK11N(成本估算)、MIGO(物料移动)、CO11N(报工)等。

金牌架构师 535

Redis5【使用篇】01:Redis常用数据类型【string、hash、list、set、sorted set】

Redis5【使用篇】01:Redis常用数据类型【string、hash、list、set、sorted set】

weixin_40612128的博客 469

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Redis 学习 - 1.Redis基础:string hash list set sorted_set数据类型

1. Redis基础 Redis入门 002-redis入门:Nosql应用场景介绍 问题 2008年奥运会购票崩溃 12306崩溃 淘宝崩溃 京东崩溃 … 问题现象 海量用户 高并发 罪魁祸首--关系型数据库 性能瓶颈:磁盘IO性能低下 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群 解决思路 降低磁盘IO次数,越低越好-----内存存储 去除数据间关系,越简单越好--...

liangwenhao1108的博客 1289

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Redis的数据类型详解和使用:Hash、Set、Sorted set、Bitmap、HyperLogLog类型

详细介绍了Redis的Hash、Set、Sorted set、Bitmap、HyperLogLog类型的常见命令和应用方式。

终生学习践行者 3790

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 类型 简介 特性 场景 String(字符串) 二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M ------ Hash(字典) 键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像...

樂小伍 1238

redis: sorted set数据类型与操作

redis支持有序集合,即sorted sets数据类型。基本格式为: key --> member -- score     |  --> member -- score     sorted set类型的实现采用了两个数据结构:hash table 和 skip list(跳跃表),其中hash table是具体使用redis中的dict来实现的,主要是为了保证查询效率为O(1)

shamohua的专栏 6971

Redis从入门到精通(10):redis的sorted_set数据类型详解

前面提到的几种数据类型都各有特点,但是如果想对数据进行排序却做不到,想要数据能够按照某种特色进行排序,需要用到一种新类型,sorted_set。 我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。 文章目录sorted_set数据类型常用操作注意事项实际案例 sorted_set数据类型 在前面set的基础上,对每个元素增加...

T型人小付的博客 369

Redis的数据类型包括:String、List、Set、sorted Set、hash这样5种类型。

redis数据类型

tj的博客 291

276-Redis(Redis 数据类型:sorted_set)

sorted_set 新的存储需求: 数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式 需要的存储结构: 新的存储模型,可以保存可排序的数据 sorted_set类型: 在set的存储结构基础上添加可排序字段 注意: score列不是用来存数据的,是用来排序的! sorted_set基本操作 # 添加数据 zadd key score1 member1 [score2 member2] # 获取全部数据,可以选择是否带score zrange key start stop [W

Edward_LF的博客 272

Redis:五大数据类型 -Zset(sorted set)

Redis有序集合Zset(sorted set) 在set基础上,加一个score值。 之前set是k1 v1 v2 v3, 现在zset是k1 score1 v1 score2 v2 案例 zadd/zrange withscores zrangebyscore key 开始score 结束score 2...

yubin1285570923的博客 1044

Redis数据类型:有序集合sorted_set

Redis数据类型:有序集合sorted_set类型操作 和set集合很像,都不允许出现重复的元素。他们之间的差别在于sorted_set集合中每一元素都会有一个分数(score)与之关联,Redis正是通过分数来为sorted_set集合中的元素进行从小到大的排序。尽管sorted_set集合中的元素不能重复,但是分数(score)却可以重复。 应用场景:取排行榜的前几名或者后几名。 类型操作 1.给集合添加一个或多个元素。 ZADD key [NX|XX] [CH] [INCR] score membe

低调的码农-博客 430

Redis的list、hash、set、sorted_set

目录一、list二、hash三、set四、sorted_set 上一篇我们聊了Redis的String类型,我们都知道Redis有五大类型,除了String,还剩list、hash、set、sorted_set。同时,Redis命令的首字母很多都是和类型直接相关的,比如list中的 l ,一部分表示是list类型(除了表示left的 l )、hash的 h、set的 s,那为啥sorted_set就直接是 z 了呢,很简单,s 不是已经表示set了吗,Redis就直接取26个字母的最后一个 z来表示sort

Java和算法学习的博客 477

⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]

- Zset和set一样都是String类型的不可重复集合,但是有序的。 - ZSet集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1) - 每个元素都会关联一个double类型的分数,以此为**集合成员进行由小到大的排序** 。

ebb29bbe的博客 865

【Redis从入门到进阶】第 1 讲:Redis的五大基本数据类型

【Redis从入门到进阶】第 1 讲:Redis的五大基本数据类型

执梗的博客 6887
上一篇: nginx rewrite重写入门
下一篇: 缓存超时策略:手动清除"分体式"新闻缓存
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值