Redis ZSet 有序集合
有序集合类型与集合类型的区别就是他是有序的。有序集合是在集合的基础上为每一个元素关联一个分数,这就让有序集合不仅支持插入,删除,判断元素是否存在等操作外,还支持获取分数最高/最低的前N个元素。有序集合中的每个元素是不同的,但是分数却可以相同。有序集合使用散列表和跳跃表实现,即使读取位于中间部分的数据也很快,时间复杂度为O(log(N)),有序集合比列表更费内存。
Redis有序集合的操作命令和对应的api如下:
zadd [zset] sco 'value'
JedisAPI:public Long zadd(final String key, final double score, final String member)
功能:向zset中添加score为sco的value,如果value已存在,则仅修改score,同时返回0,否则返回1
zrange/zrangebyscore [zset] start end (wisthscores)
JedisAPI:public Set<String> zrange(final String key, final long start, final long end)
功能:返回zset中从索引start到end的元素,withscores可选是否同时显示元素对应的score
zrem [zset] 'value'
JedisAPI:public Long zrem(final String key, final String... member)
功能: 删除zset中值为value的元素
zincrby [zset] n 'value'
JedisAPI:public Double zincrby(final String key, final double score, final String member)
功能:如果zset中存在value,则令其score加n,否则添加value,令其score为n
zrank [zset] 'value'
JedisAPI:public Long zrank(final String key, final String member)
功能:返回zset中值为value的元素排名(按score从小到大)
zrevrank [zset] 'value'
JedisAPI:public Long zrevrank(final String key, final String member)
功能:按score从大到小返回元素排名
zrevrange [zset] start end
JedisAPI:public Set<String> zrevrange(final String key, final long start, final long end)
功能:返回zset[end…start]
zcount [zset] start end
JedisAPI:public Long zcount(final String key, final double min, final double max)
功能:返回zset在指定区间的数量
zcard [zset]
JedisAPI:public Long zcard(final String key)
功能:返回zset中元素的个数
zscore [zset] 'value'
JedisAPI:public Double zscore(final String key, final String member)
功能:返回值为value的元素的score
zremrangebyrank [zset] start end
JedisAPI:public Long zremrangeByRank(final String key, final long start, final long end)
功能:删除zset按score从小到大排序索引从start到end的元素。
zremrangebyscore [zset] score1 score2
JedisAPI:public Long zremrangeByScore(final String key, final double start, final double end)
功能:删除zset中score在score1到score2之间的元素
Redis ZSet 有序集合的更多相关文章
- php使用redis的有序集合zset实现延迟队列
延迟队列就是个带延迟功能的消息队列,相对于普通队列,它可以在指定时间消费掉消息. 延迟队列的应用场景: 1.新用户注册,10分钟后发送邮件或站内信. 2.用户下单后,30分钟未支付,订单自动作废. 我 ...
- 聊聊Mysql索引和redis跳表 ---redis的有序集合zset数据结构底层采用了跳表原理 时间复杂度O(logn)(阿里)
redis使用跳表不用B+数的原因是:redis是内存数据库,而B+树纯粹是为了mysql这种IO数据库准备的.B+树的每个节点的数量都是一个mysql分区页的大小(阿里面试) 还有个几个姊妹篇:介绍 ...
- [PHP] PHP多个进程配合redis的有序集合实现大文件去重
1.对一个大文件比如我的文件为 -rw-r--r-- 1 ubuntu ubuntu 9.1G Mar 1 17:53 2018-12-awk-uniq.txt 2.使用split命令切割成10 ...
- Redis 操作有序集合数据
Redis 操作有序集合数据: > zadd names "Tom" // zadd 用于往有序集合中添加元素,其中 1 在 Redis 中称为 score(分数),用来进行 ...
- python 操作redis之——有序集合(sorted set) (七)
#coding:utf8 import redis r =redis.Redis(host=") 1.Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中.如果某个成员已经是有序 ...
- Redis对象——有序集合(ZSet)
有序集合类型 (Sorted Set或ZSet) 相比于集合类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序 ...
- redis的有序集合ZSET(stored set)
相关命令 1.ZADD ZADD key-name score member [score member……] 将带有给定分值的成员添加到有序集合里 2.ZREM ZREM key-name mem ...
- redis学习-有序集合(zset)常用命令
zadd:有序集合增加一个或者多个键值对 与set集合不同,zset添加的时候需要 指定 score,这个是用来排名的 zrange:返回指定范围的键 zcount:返回集合指定范围的个数(以每个键值 ...
- redis之有序集合类型(Zset)——排行榜的实现
当数据库对排序支持的不是很好,可以利用redis有序集合排序 原文链接:http://blog.csdn.net/loophome/article/details/50373202
随机推荐
- php面向对象之$this->用法简述
在成员方法中,调用成员方法的方法是对象名加方法名,格式就是“对象名->方法名”.但是在定义类的时候,我们往往不知道对象名是什么,所以就没法用对象名,这时,我们就要用到伪变量$this. 什么是$ ...
- Ftp客户端需要TSL功能的文件上传
Ftp客户端需要TSL功能 1.由于最近做了一个项目,需要把打包的文件传输到对方的FTP服务器上,但是用普通的java连接ftp客户端总是连接不上去,对方却说ftp客户端需要开通TSL功能. 直接上代 ...
- 二十五 存储技术与应用 iSCSI技术应用 、 udev配置 NFS网络文件系统 、 Multipath多路径 、 NFS网络文件系统 、 udev配置
1.配置iSCSI服务 服务器上要额外配置一块硬盘 服务端(proxy)安装target,并将新加的硬盘配置为iSCSI 的共享磁盘 在客户端(client)上安装initiator,挂载服务器iSC ...
- All 关键字
本文档已存档,并且将不进行维护. GROUP BY 子句和 ALL 关键字 SQL Server 2005 Transact-SQL 在 GROUP BY 子句中提供 ALL 关键字.只有在 SELE ...
- CF809E 【Surprise me!】
我们要求的柿子是张这样子的: \[\frac{1}{n * (n - 1)} * \sum_{i = 1}^n\sum_{j = 1}^{n}\phi(a_i*a_j)*dis(i, j)\] 其中\ ...
- CF786E ALT
题意 有一棵 \(n\) 个点的树和 \(m\) 个人,第 \(i\) 个人从 \(u_i\) 走到 \(v_i\) 现在要发宠物,要求一个人要么他自己发到宠物,要么他走的路径上的都有宠物. 求最小代 ...
- js type
js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型. new Object() functionundefined ...
- Linux中系统状态检测命令
1.ifconfig用于获取网卡配置与网络状态等信息,格式为:ifconfig [网络设备] [参数] 2.uname命令用于查看系统内核版本等信息,格式为:uname [-a] 查看系统的内核名称. ...
- Android 格式化分区命令
mkfs.vfat /dev/block/mmcblk0pxxxx 格式化某分区为vfat格式 busybox mkfs.vfat /dev/block/mmcblk0pxxx ...
- angular项目目录结构分析
详情查看:https://www.angular.cn/guide/file-structure app.module.ts 定义 AppModule, 这个根模块会告诉 Angular 如何组装该应 ...