Redis之ZSet
来源:互联网 发布:csol能淘宝买武器么 编辑:程序博客网 时间:2024/06/11 05:44
zset
Redis提供了有序的集合zset。在有序集合中,每个元素都关联有一个权重或者称作分数,作为排序的依据。我们经常把有序集合称作zsets,这是因为在Redis中,有序集合相关的操作指令都是以字母z开头的(具体看下面的命令介绍)
有序集合相关命令
zadd命令
zadd命令可以将一个或多个元素添加到集合中,如果指定的元素已经存在则更新该元素的分数。该命令返回添加到集合中的元素个数(不包括已经存在而被更新分数的元素)。具体格式如下:
zadd key score1 value1...
zrange命令
range命令将集合元素按分数升序排序,然后返回下标范围为[start,stop]的元素。跟前面介绍的list数据类型一样,有序集合的下标也是从0开始计算,也可以用负数表示从尾部开始的偏移量。
该命令还可以加withscore选项把每个元素关联的分数打印出来。具体格式如下:
zrange key start stop [withscores]
zrevrange命令
zrevrange命令与zrange命令相似,可以用来返回排序后指定下标范围的元素列表,不同的是该命令按元素分数降序排序。具体格式如下
zrevrange key start stop [withscore]
zrank和zrevrank命令命令
zrank命令返回指定元素在有序集合中按升序排序后的排名。注意,该排名是从0开始计算的。如果该元素不存在,则返回nil。具体格式如下:
zrank key memberzrevrank key member
zrangebyscore命令
zrangebyscore命令和mysql中的“order by ” + “limit”语句相似。
该命令先将集合中的元素按“分数”从小到大排序,然后返回分数在[min,max]内的元素,并且可以跳过offset元素,取其后的N个元素。其中[withscores]、[limit offset N]为可选项。
zrangebyscore key min max [withscores] [limit offset N]
zrem命令
zrem命令用来删除集合中的一个或多个元素。如果该被删除元素不在有序集合中,则自动忽略。具体格式如下:
zrem key value1 value2...
zremrangebyrank命令
zremrangebyrank命令按照排名来删除元素,将排名在[min,max]范围内的元素删除并返回被删除的元素数量。注意,有序集合的排序是以0开始计算的。具体格式如下:
zremrangebyrank key start end
zremrangebyscore命令
前面zremrangebyrank命令可以根据元素排名来删除元素,而zremrangebyscore命令则可以根据元素分数来删除元素。该命令将分数在[min,max]范围内的元素删除并返回被删除的元素数量。具体格式如下:
zremrangebyscore key min max
zcard命令
card命令用来返回有序集合中元素的个数。具体格式如下:
zcard key
zcount命令
zcount命令返回分数在指定范围的元素个数。具体格式如下:
zcount key min max
zincrby命令
zincrby命令用来增加有序集合中指定元素的分数。如果该元素在集合中不存在,则先添加该元素,并将其分数设置为0,然后在这基础上再增加其分数。返回元素现在的分数
zincrby key increment member
zscore命令
zscore命令返回指定元素所关联的分数,如果该元素不存在集合中则返回nil。具体格式如下:
zscore key member
- redis之zset
- Redis之Zset
- Redis之ZSet
- 07. redis 数据类型之Zset
- Redis数据结构详解之Zset
- Redis数据结构详解之Zset
- Redis数据结构详解之Zset
- redis Zset
- redis-zset
- redis zset ( [
- redis数据类型之zset(Sorted-Sets)
- Redis数据结构详解之Zset(五)
- Redis 数据库之有序集合(zset)
- Redis数据结构详解之Zset(五)
- 【Redis源码剖析】 - Redis数据类型之有序集合zset
- NoSQL之Redis对zset(有序集合)数据类型的操作
- 初识redis之常用Set和ZSet命令
- Nosql之Redis: zset(有序集)数据类型及操作命令
- C# TCP异步通讯框架封装
- Delegate委托
- JAVA操作SQOOP对象
- 产品工作中保持饥饿感,保持拒绝90%以上的伪需求你就不会错过下一个微信
- Linux 虚拟机的计划维护
- Redis之ZSet
- GCC常用选项
- 微信运动:抓住用户的小九九,一个都别跑
- PMCAFF微课堂「已结束」| 测试兄弟CEO揭秘如何提高创初团队的产品质量
- 写给大家看的设计书学习笔记
- stm32启动文件
- 15个有用的MySQL/MariaDB性能调整和优化技巧
- 我最近做产品的一些「感悟」
- COMMAND 命令模式 --对象行为型模式