专栏首页Devops专栏Redis 数据结构之zset有序集合

Redis 数据结构之zset有序集合

zset类型

  • sorted set,有序集合
  • 元素为string类型
  • 元素具有唯⼀性,不重复
  • 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
  • 说明:没有修改操作

增加

  • 添加

zadd key score1 member1 score2 member2 ...

  • 例1:向键'a4'的集合中添加元素'lisi'、'wangwu'、'zhaoliu'、'zhangsan',权重分别为4、5、6、3
127.0.0.1:6379[1]> zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan
(integer) 4
127.0.0.1:6379[1]> 

获取

返回自定返回的元素

  • 返回指定范围内的元素
  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

zrange key start stop

  • 例2:获取键'a4'的集合中所有元素
127.0.0.1:6379[1]> zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan
(integer) 4
127.0.0.1:6379[1]> zrange a4 0 -1
1) "zhangsan"
2) "lisi"
3) "wangwu"
4) "zhaoliu"
127.0.0.1:6379[1]> 

返回score值在min和max之间的成员

zrangebyscore key min max

  • 例3:获取键a4的集合中权限值在5和6之间的成员
127.0.0.1:6379[1]> zrangebyscore a4 5 6
1) "wangwu"
2) "zhaoliu"
127.0.0.1:6379[1]> 

返回成员member的score值

zscore key member

  • 例4:获取键a4的集合中元素zhangsan的权重
127.0.0.1:6379[1]> zscore a4 zhangsan
"3"
127.0.0.1:6379[1]> zscore a4 wangwu
"5"
127.0.0.1:6379[1]> zscore a4 zhaoliu
"6"
127.0.0.1:6379[1]> 

删除

删除指定元素

zrem key member1 member2 ...

  • 例5:删除集合a4中元素zhangsan
127.0.0.1:6379[1]> zrem a4 zhangsan
(integer) 1
127.0.0.1:6379[1]> ZRANGE a4 0 -1
1) "lisi"
2) "wangwu"
3) "zhaoliu"
127.0.0.1:6379[1]> ZREM a4 lisi
(integer) 1
127.0.0.1:6379[1]> ZRANGE a4 0 -1
1) "wangwu"
2) "zhaoliu"
127.0.0.1:6379[1]> 

删除权重在指定范围的元素

zremrangebyscore key min max

  • 例6:删除集合a4中权重在5、6之间的元素
# 查看权重在5、6之间的元素
127.0.0.1:6379[1]> ZRANGEBYSCORE a4 5 6
1) "wangwu"
2) "zhaoliu"

# 删除权重在5,6之间的元素
127.0.0.1:6379[1]> ZREMRANGEBYSCORE a4 5 6
(integer) 2

# 再查看权重在5,6之间的元素
127.0.0.1:6379[1]> ZRANGEBYSCORE a4 5 6
(empty list or set)

# 查看所有元素
127.0.0.1:6379[1]> ZRANGE a4 0 -1
(empty list or set)
127.0.0.1:6379[1]> 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis 数据结构之String数据类型

    字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息...

    Devops海洋的渔夫
  • Redis key键命令

    redis是基于key -- value 存储的 NoSQL 数据库,那么下面来看看关于key的键命令。

    Devops海洋的渔夫
  • Django 2.1.7 状态保持 - Cookie

    在之前写jquery的篇章中介绍过Cookie的一个示例用法jquery cookie示例 - 只提示一次的弹框.

    Devops海洋的渔夫
  • redis实际操作部署篇(二)

    对于redis来说,它有四种部署模式,分别是单机模式、主从模式、哨兵模式和集群模式,他们的使用场景有些区别,当然也是越来越复杂,可靠性越来越高。

    灰子学技术
  • Redis 哈希(Hash)使用

    Coxhuang
  • Redis Hash 类型操作及常用命令

    Redis hash 是一个 String 类型的 field 和 value 的映射表。它的添加、删除操作都是 O(1) (平均)。hash 特别适合用于存储...

    Jacob丶
  • Python通过抓包和使用cookie爬取微博完全讲解

    專 欄 ❈邓旭东,Python中文社区专栏作者。 简书: http://www.jianshu.com/u/1562c7f16a04 ❈ 今天给大家录制了一个爬...

    Python中文社区
  • Redis教程(3)

    Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象。相较于将对象的...

    py3study
  • Redis中的发布订阅和事务

    hello,小伙伴们好久不见!前面我们说了redis中的基本数据类型,本文我们来看看redis中的发布订阅和事务,因为这两个都比较简单,因此我放在一篇文章中来讲...

    江南一点雨
  • 深入分析 Session 和 Cookie

    在Web发展史中,我们知道浏览器与服务器间采用的是 http协议,而这种协议是无状态的,所以这就导致了服务器无法知道是谁在浏览网页,但很明显,一些网页需要知道用...

    用户1516716

扫码关注云+社区

领取腾讯云代金券