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
随机推荐
- SpringBoot项目中,Redis的初次使用
1.引入Redis依赖包,在application.yml中配置redis <dependency> <groupId>org.springframework.boot< ...
- java+下载+大文件断点续传
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路:1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...
- 第90节:Java中的Linux基础
第90节:Java中的Linux基础 linux是装载虚拟机上面的: JDK依赖包: yum install glibc.i686 MYSQL依赖包: yum -y install libaio.so ...
- mysql IFNULL函数和COALESCE函数使用技巧
IFNULL() 函数 IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值. IFNULL() 函数 ...
- C#读写三菱PLC数据 使用TCP/IP 协议
本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...
- 2018-2019-2 20165312《网络攻防技术》Exp 8 Web基础
2018-2019-2 20165312<网络攻防技术>Exp 8 Web基础 目录 一.相关知识点总结 二.实验内容 三.实验步骤 四.实验总结及问题回答 五.实验中遇到的问题及解决方法 ...
- arcgis python 使用光标和内存中的要素类将数据加载到要素集 学习:http://zhihu.esrichina.com.cn/article/634
学习:http://zhihu.esrichina.com.cn/article/634使用光标和内存中的要素类将数据加载到要素集 import arcpy arcpy.env.overwriteOu ...
- OpenTK学习笔记(2)-工作窗口的三种方法创建方法(winfrom窗体控件形式创建)
参考资料: https://social.msdn.microsoft.com/Forums/zh-TW/1b781685-c670-4338-953d-1957a8f24a66/opentkglco ...
- Tomcat中配置URIEncoding="UTF-8"来处理中文的处理
Tomcat中配置URIEncoding="UTF-8"来处理中文的处理 打开 server.xml 文件,更改两个地方. 配置一:添加 URIEncoding="UTF ...
- PorterDuffXfermode之PorterDuff.Mode.SRC_IN
package com.loaderman.customviewdemo.view; import android.content.Context; import android.graphics.B ...