Redis五种数据类型之 Zset 类型
ZSets类型是一种有序集合,在set基础上添加顺序属性,添加元素时指定顺序,每次指定后zset会自动重新按照顺序将值重新调整顺序,可以理解为两列mysql表,一列存value一列存顺序key。
下面切入正题咯:
常用命令总结(自用总结 不喜勿喷):
示意图
| value | order |
| harbor | 1 |
| chung | 2 |
取1时得到harbor
取2时得到值chung
1.zadd方法
添加一个新元素
eg:
127.0.0.1:6379> zadd zset 1 “harbor"
(integer) 1
127.0.0.1:6379> zadd zset 2 "harborChung"
(integer) 1
2.zrange方法
取元素 0代表索引起始位置 -1代表所以结束为止 可选命令 withscores输出顺序号
eg:
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harbor"
2) "1"
3) "harborChung"
4) “2"
3.zrem方法
删除名称为key的zset中的元素member,返回值1代表成功,0代表失败.
eg:
127.0.0.1:6379> zrem zset aa
(integer) 0
127.0.0.1:6379> zrem zset "harbor"
(integer) 1
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) “2"
4.zincrby方法
以指定值增加相应key中的顺序
如果在名称为key的zset中已存在member,则将此元素的次序增加指定值,否则向该集合添加此元素并使其顺序值为指定值。返回值为该元素的顺序值
eg:
127.0.0.1:6379> zincrby zset 10 "harbor"
"10"
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
3) "harbor"
4) “11"
不存在该元素情况:
127.0.0.1:6379> zincrby zset 11 "harbor"
"21"
127.0.0.1:6379> zincrby zset 11 "harborZZZ"
"11"
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
3) "harborZZZ"
4) "11"
5) "harbor"
6) “21"
5.zrank方法
返回名称为key的zset中的member元素排名(索引)按下标排序 从小到大
eg:
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
3) "harborZZZ"
4) "11"
5) "harbor"
6) "21"
127.0.0.1:6379> zrank zset "harbor"
(integer) 2
127.0.0.1:6379> zrank zset "harborChung"
(integer) 0
127.0.0.1:6379> zrank zset "harborZZZ"
(integer) 1
6.zrevrank方法
返回名称为key的zset中的member元素排名(索引)按下标排序 从大到小
eg:
127.0.0.1:6379> zrevrank zset "harborChung"
(integer) 2
127.0.0.1:6379> zrevrank zset "harbor"
(integer) 0
127.0.0.1:6379> zrevrank zset "harborZZZ"
(integer) 1
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
3) "harborZZZ"
4) "11"
5) "harbor"
6) “21"
7.zrevrange方法
按照顺序反向(降序)排序
与Zrange对比:
eg:
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
3) "harborZZZ"
4) "11"
5) "harbor"
6) "21"
127.0.0.1:6379> zrevrange zset 0 -1 withscores
1) "harbor"
2) "21"
3) "harborZZZ"
4) "11"
5) "harborChung"
6) "2"
8.zrangebyscore方法
查找给定顺序范围内的元素并返回这些元素 给定范围构成的闭集合 如2 11则返回序号2(包括2)到序号11的这些元素(包括11).
eg:
127.0.0.1:6379> zrangebyscore zset 2 15 withscores
1) "harborChung"
2) "2"
3) "harborZZZ"
4) “11"
9.zcount方法
返回集合中score在给定区间的数量
eg:
127.0.0.1:6379> zcount zset 2 11
(integer) 2
10. zcard方法
返回该集合中的所有元素个数
eg:
127.0.0.1:6379> zcard zset
(integer) 3
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
3) "harborZZZ"
4) "11"
5) "harbor"
6) "21"
11.zremrangebyrank方法
按下标升序排序后删除给定区间内的元素
(删除集合中索引在给定区间的元素)
输入参数为给定区间范围 含义为索引
eg:
—删除索引为1 2 的元素
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
3) "harborZZZ"
4) "11"
5) "harbor"
6) "21"
127.0.0.1:6379> zremrangebyrank zset 1 2
(integer) 2
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harborChung"
2) "2"
—删除所有元素
127.0.0.1:6379> zremrangebyrank zset 0 -1
(integer) 1
127.0.0.1:6379> zrange zset 0 -1 withscores
(empty list or set)
12.zremrangebyscore方法
按下标升序排序后删除给定区间内的元素
(删除集合中序号在给定区间的元素)
输入参数为给定区间范围 含义为序号
eg:
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harbor"
2) "1"
3) "harborChung"
4) "2"
5) "ChungH"
6) "10"
7) "Chung"
8) "30"
9) "ZZZChung"
10) "32"
127.0.0.1:6379> zremrangebyscore zset 30 35
(integer) 2
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "harbor"
2) "1"
3) "harborChung"
4) "2"
5) "ChungH"
6) “10"
相关推荐
Redis 是一个开源的、基于内存的数据结构存储系统,支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(集合)及 zset(有序集合)。本文将详细介绍 Redis 的 List 类型的命令和应用场景。 ...
本文将深入探讨一个名为“lua-zset”的开源项目,它是如何在Lua中实现与Redis排序集(zset)相似的数据结构,并提供构建与测试的方法。 首先,我们来理解什么是Redis的排序集。Redis的有序集合(Sorted Set)是一个...
* 字符串(String):字符串是Redis最基本的数据类型,使用set命令设置键值对,get命令获取值。 * 列表(List):列表是Redis的一种数据类型,使用lpush命令从左边插入元素,lrange命令获取指定范围内的元素。 * ...
本文将深入探讨如何使用Java操作Redis的四种主要数据类型:字符串(String)、列表(List)、哈希(Hash)和集合(Set)。 首先,我们来看**字符串类型**(String)。在Redis中,字符串是最基础的数据类型,可以...
根据《Redis笔记-尚硅谷周阳V1.3》整理,脑图、思维导图xmind
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、...
它支持五种基本数据类型:字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。在Java中,我们通常使用Jedis库来操作Redis。下面将详细介绍这五种数据类型在Java中的使用方法。 1. ...
- **基本数据类型**: - **字符串(Strings)**: 最简单的键值对存储方式。 - **列表(Lists)**: 存储有序的字符串列表,适合实现队列和栈。 - **集合(Sets)**: 存储无序不重复的字符串集合。 - **哈希(Hashes)**: ...
Redis笔记整理-五中数据类型之String和Hash,这两种数据类型是我们常用语做缓存,从而减轻数据库的压力,缓存我们一般放到服务成,被多个表现成调用达到公用性
Redis是一款高性能的键值存储系统,它以其丰富的数据结构、高效的数据操作以及强大的持久化机制在现代互联网架构中扮演着重要角色。本篇文章主要探讨Redis的核心数据结构和核心原理,以及如何利用IO多路复用技术处理...
Redis提供了五种基本数据类型:字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。这些数据类型使得Redis能够处理各种复杂的数据结构需求,如存储用户信息、实现队列功能、进行计数...
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 Redis 优势 性能极高 – Redis能读的速度是110000次/s,写的...
- 数据类型:Redis支持丰富的数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。 - 持久化:Redis通过RDB和AOF两种方式进行数据持久化,确保在服务器重启后能恢复数据。 ...
除了string类型外,其他数据类型如hash、list、set和sorted_set也有其独特的应用场景和操作方法。例如,hash类型适用于存储对象,list类型可以实现队列或栈的操作,set类型支持去重集合的存储,而sorted_set类型则为...
新增加的Stream(流)数据类型,这样redis就有了6大数据类型,另外五种是String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set有序集合)。它弥补了其它5种数据类型不能实现的功能,比如List...
NoSQL 数据库的主要特点包括易扩展性、大数据量下的高性能、多样化数据类型以及弱一致性等,这些特性使得 Redis 在应对大规模高并发场景时表现出色。 Redis 的核心特点是其基于内存的存储机制,这使得 Redis 具有极...
和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string(字符串)、list(连表)、set(集合)、zset(sorted set-有序集合)和 hash(哈希类型)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及...
1. 字符串(String):基本数据类型,可以存储任何二进制数据,包括JSON、XML等。 2. 哈希(Hash):用于存储键值对的集合,适合表示对象。 3. 列表(List):按照插入顺序排序的元素集合,支持两端插入和弹出操作。...
redis帮助文档之sorted_set