前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis 学习(7) -- 有序集合

redis 学习(7) -- 有序集合

作者头像
希希里之海
发布2019-06-03 09:51:01
4810
发布2019-06-03 09:51:01
举报
文章被收录于专栏:weixuqin 的专栏

redis 学习(7) -- 有序集合

zset 结构

  • 有序集合:有序、不能包含重复元素
  • 每个节点包含:score和value两个属性,根据score进行排序

如图:

zset 重要 API

含义

命令

zadd key score1 member1 [score2 member2...]

向有序集合添加一个或多个成员,或者更新已存在成员的分数

zrem key member1 [member2...]

从有序集合中删除一个或多个成员

zscore key member

获取有序集合中成员的分数

zincrby key increment member

对有序集合中指定成员的分数加上增量increment

zcard key

返回有序集合中元素的总个数

zrange key start end [withscores]

通过索引返回有序集合中指定区间的成员信息

zrangebyscore key min max [withscores][limit]

通过score返回有序集合中指定分数区间的成员信息

zscore key min max

返回有序集合中指定分数范围内的元素个数

zremrangebyscore key min max

删除有序集合中指定分数区间的所有成员

zremrangebyrank key start end

删除有序集合中给定索引区间的所有成员

演示

代码语言:javascript
复制
127.0.0.1:6381> zadd player:rank 1000 ronaldo 900 messi 800 c-ronaldo 600 kaka
(integer) 4
127.0.0.1:6381> zrange player:rank 0 -1
1) "kaka"
2) "c-ronaldo"
3) "messi"
4) "ronaldo"
127.0.0.1:6381> zcount player:rank 700 901
(integer) 2
127.0.0.1:6381> zrangebyscore player:rank 700 901
1) "c-ronaldo"
2) "messi"
127.0.0.1:6381> zremrangebyrank player:rank 0 1
(integer) 2
127.0.0.1:6381> zrange player:rank 0 -1
1) "messi"
2) "ronaldo"
127.0.0.1:6381> zrange player:rank 0 -1 withscores
1) "messi"
2) "900"
3) "ronaldo"
4) "1000"
127.0.0.1:6381> 

实战

排行榜功能

使用有序集合,运用zrange,zrangebyscore、zrangebyrank 等命令可以实现排行榜功能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • redis 学习(7) -- 有序集合
    • zset 结构
      • zset 重要 API
        • 演示
          • 实战
          相关产品与服务
          云数据库 Redis
          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档