Redis常用命令(三)有序集合键、HyperLogLog键

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

### zet 有序集合,元素为string类型,元素具有唯一性,不重复。

### 每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序。没有修改操作

### 虽然每个元素必不相同,但是score可以相同


zadd key score1 member1 score2 member2 ...  # 添加

zadd fruits 1.0 apple 2.4 banana 4 watermelon 5 orange


# 返回指定范围内的元素,索引从左侧开始,第一个元素为0,

# 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素;

# 当给定withscores选项时,元素和分值一并返回

zrange key start stop [withscores]  

zrange fruits 0 -1

zrange fruits 0 -1 withscores


zrevrange key start stop [withscores]  # 按照分值从大到小降序排列,其他同上

zrevrange fruits 0 -1 withscores


zrangebyscore key min max [withsocres] [limit offset count]  # 返回score值在min和max之间的成员

zrangebyscore fruits 5 9


zrevrangebyscore key max min [withsocres] [limit offset count]  # 按照分值降序排列,返回score值在max和min之间的成员

zrevrangebyscore fruits 5 4 withscores


zscore key member  # 返回成员member的score值

zscore fruits apple


zrem key member1 member2 ...  # 删除指定元素

zrem fruits banana watermelon


zremrangebyscore key min max  # 删除权重在指定范围的元素

zremrangebyscore fruits 1 3


zremrangebyrank key start stop  # 元素按照升序排列下,删除指定排名范围内的元素,排名从0开始

zremrangebyrank fruits 1 2


zincrby key increment member  # 为有序集合指定元素的分值加上增量increment,如果没有这个集合、元素,则直接创建

zincrby fruits 1 banana


zcard key   # 返回有序集合包含的元素数量

zcard fruits


zrank key member  # 返回指定元素在有序集合中的排名,其中排名按照元素的分值从小到大排序

zrank fruits apple   --> 1


zrevrank key member  # 返回成员在有序集合中的逆序排名,排名到0结束

zrevrank fruits apple  --> 3


zcount key min max  # 返回有序集合在升序排列下分值在min和max之间的元素数量

zcount fruits 1 4


zunionstore destkey numkeys key [key...]  # 计算并集,结果存储到destkey,numkeys指定进行计算的集合个数

zadd fruits-8-13 300 apple 200 banana 150 cherry

zadd fruits-8-14 250 apple 300 banana 100 cherry

zunionstore fruits-8-13&14 2 fruits-8-13 fruits-8-14  # 得到8月13、14两天所有水果的总数


zinterstore destkey numkeys key [key...]  # 计算交集,结果存储到destkey,numkeys指定进行计算的集合个数



### HyperLogLog 使用常量空间估算大量元素的基数

### 即使输入元素的数量或体积非常非常大,计算基数所需的空间总是固定的,并且是很小的

### 每个HyperLogLog键花费12kb内存,可以计算接近2^64个基数

### HyperLogLog只会根据输入元素来计算基数,而不会存储输入元素,所有它不能返回输入的各个元素


pfadd key member [member...]  # 将任意数量的元素添加到指定的HyperLogLog

pfadd unique::ip::counter 192.168.0.1

pfadd unique::ip::counter 192.168.10.1


pfcount key [key...]  # 当之给定一个HyperLogLog时,返回给定HyperLogLog的基数估算值; 当给定多个HyperLogLog时,得出一个合并的HyperLogLog,并返回

pfcount unique::ip::counter


pfmerge destkey sourcekey [sourcekey...]  # 将多个HyperLogLog合并成一个HyperLogLog,

  # 合并后的HyperLogLog的基数估算是对所有HyperLogLog进行并集计算得出的

pfadd str1 apple banana cherry

pfadd str2 cherry durian mongo

pfmerge str1&str2 str1 str2

pfcount str1&str2

本文转自戴柏阳的博客博客51CTO博客,原文链接http://blog.51cto.com/daibaiyang119/1962376如需转载请自行联系原作者

daibaiyang119
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
24天前
|
消息中间件 存储 NoSQL
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
92 30
|
2月前
|
NoSQL 应用服务中间件 API
Redis是如何建立连接和处理命令的
本文主要讲述 Redis 是如何监听客户端发出的set、get等命令的。
898 28
|
4月前
|
NoSQL Java Redis
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
这篇文章介绍了Redis的基本命令,并展示了如何使用Netty框架直接与Redis服务器进行通信,包括设置Netty客户端、编写处理程序以及初始化Channel的完整示例代码。
113 1
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
|
4月前
|
存储 NoSQL 关系型数据库
Redis 有序集合(sorted set)
10月更文挑战第17天
190 4
|
4月前
|
NoSQL 算法 关系型数据库
Redis HyperLogLog
10月更文挑战第17天
47 2
|
4月前
|
缓存 NoSQL 测试技术
Redis如何解决频繁的命令往返造成的性能瓶颈!
Redis如何解决频繁的命令往返造成的性能瓶颈!
|
3月前
|
存储 NoSQL Java
Redis命令:列表模糊删除详解
通过本文的介绍,我们详细探讨了如何在Redis中实现列表的模糊删除。虽然Redis没有直接提供模糊删除命令,但可以通过组合使用 `LRANGE`和 `LREM`命令,并在客户端代码中进行模糊匹配,来实现这一功能。希望本文能帮助你在实际应用中更有效地操作Redis列表。
154 0
|
4月前
|
缓存 NoSQL Redis
Redis命令:列表模糊删除详解
Redis命令:列表模糊删除详解
133 3
|
4月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
641 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
4月前
|
NoSQL Redis 数据安全/隐私保护
Redis 命令
10月更文挑战第15天
61 0