• Redis数据类型之Sorted Set的使用


    Redis数据类型之Sorted Set的使用

    在 Redis 中,Sorted Set(有序集合)类型是 Set 类型的一个升级版本,在 Set 类型的基础增加了一个排序的属性。这一属性类似于分数,在添加、修改元素的时候可以指定,每次指定后有序集合会自动按新的值调整顺序。有序集合中的元素是唯一的,但是排序属性(Score)却可以重复。集合中最多可以包含 2 32 − 1 2^{32} - 1 2321 (4294967295)个元素(每个集合可以存储超过40亿个元素)。

    ZADD

    ZADD 命令的语法如下:

    ZADD key score member [[score member] [score member] ...]
    
    • 1

    作用:ZADD 用于将一个或多个 member 和 score 添加入集合 key 中。如果 member 已存在,则更新其 score。

    返回值:被成功添加的新元素的数量。

    示例:

    127.0.0.1:6379> ZADD letter 1 "a"   # 添加新元素
    (integer) 1
    127.0.0.1:6379> ZADD letter 2 "b" 3 "c"   # 添加多个元素
    (integer) 2
    127.0.0.1:6379> ZRANGE letter 0 -1 WITHSCORES   # 查看集合的元素
    1) "a"
    2) "1"
    3) "b"
    4) "2"
    5) "c"
    6) "3"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    使用 Redis 的内存可视化工具 Redis Desktop Manager 可以查看有序集合在 Redis 中的存储结构

    改变已知元素的score:

    127.0.0.1:6379> ZADD letter 6 "a"
    (integer) 0
    127.0.0.1:6379> ZRANGE letter 0 -1 WITHSCORES   # 查看集合的元素
    1) "b"
    2) "2"
    3) "c"
    4) "3"
    5) "a"
    6) "6"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ZREM

    ZREM 命令的语法如下:

    ZREM key member [member ...]
    
    • 1

    作用:ZREM 用于删除集合 key 中的一个或多个 member。如果 member 不存在则会被忽略。

    返回值:执行 ZREM 命令成功后,返回集合 key 中被成功删除的元素数量。

    示例:

    127.0.0.1:6379> ZADD myset 1 "a"   # 添加新元素
    (integer) 1
    127.0.0.1:6379> ZADD myset 2 "b" 3 "c" 4 "d"  # 添加多个元素
    (integer) 3
    127.0.0.1:6379> ZRANGE myset 0 -1 WITHSCORES
    1) "a"
    2) "1"
    3) "b"
    4) "2"
    5) "c"
    6) "3"
    7) "d"
    8) "4"
    
    127.0.0.1:6379> ZREM myset "b"   # 删除单个元素
    (integer) 1
    127.0.0.1:6379> ZRANGE myset 0 -1    # 查看集合的元素
    1) "a"
    2) "c"
    3) "d"
    
    127.0.0.1:6379> ZREM myset "a" "c"   # 删除多个元素
    (integer) 2
    127.0.0.1:6379> ZRANGE myset 0 -1
    1) "d"
    
    127.0.0.1:6379> ZREM myset "e"   # 删除不存在的元素
    (integer) 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    该文章会更新,欢迎大家批评指正。

    推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
    分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
    fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
    TCP/IP,协程,DPDK等技术内容,点击立即学习:
    服务器课程:C++服务器

  • 相关阅读:
    玫瑰通行证发放中!
    CSS特效007:绘制3D文字,类似PS效果
    在centos上配置FASTDFS文件系统
    Go语言中的数组、切片和映射解析
    视频监控/安防监控/AI视频分析/边缘计算EasyCVR平台如何调取登录接口获取token?
    第二部分:对象之间的关联
    LinkedIn技巧-领英怎么只给选择的好友群发消息?
    结构体学习
    parquet-go的CSVWriter
    电动扳手设计(说明书+开题报告+英文文献及译文+cad图纸)
  • 原文地址:https://blog.csdn.net/qq_41317716/article/details/127956318