SortedSet是一个类似于Set的集合数据类型,里面的每个字符串元素都关联到一个score(整数或浮点数),并且总是通过score来进行排序着。

并且可以取得一定范围内的元素。

在Redis中大概有21个用来操作SortedSet的命令。

ZADD key [NX|XX] [CH] [INCR] score member [score member ...]:将一个或多个member元素及其socre值加入到有序集key中。时间复杂度为O(M*log(N)), N 是有序集的基数, M 为成功添加的新成员的数量。

ZCARD key:获取一个排序的集合中的成员数量,时间复杂度O(1)。

ZCOUNT key min max:返回score范围内的成员数量。

ZINCRBY key increment member:为有序集key中的member成员的score增加increment,时间复杂度O(log(N))。

127.0.0.1:6379> zadd za 10 za10
(integer) 1
127.0.0.1:6379> zadd za 20 za20 30 za30 40 za40
(integer) 3
127.0.0.1:6379> zcard za
(integer) 4
127.0.0.1:6379> zcount za 20 40
(integer) 3
127.0.0.1:6379> zincrby za 10 za10
"20"
127.0.0.1:6379>

ZRANK key member:返回成员member在排序集合成员的索引。

ZSCORE key member:返回成员在排序设置相关的score

ZRANGE key start stop [WITHSCORES]:根据指定的index返回,返回sorted set的成员列表。

ZREM key member [member ...]:从排序的集合中删除一个或多个成员

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:返回有序集合中指定分数区间内的成员,分数由低到高排序。

ZREVRANGE key start stop [WITHSCORES]:在排序的设置返回的成员范围,通过索引,下令从分数高到低

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:返回有序集合中指定分数区间内的成员,分数由高到低排序。

ZREVRANK key member:确定指数在排序集的成员,下令从分数高到低

ZREMRANGEBYRANK key start stop:在排序设置的所有成员在给定的索引中删除

ZREMRANGEBYSCORE key min max:删除一个排序的设置在给定的分数所有成员

127.0.0.1:6379> zcard za
(integer) 4
127.0.0.1:6379> zrank za za20
(integer) 1
127.0.0.1:6379> zscore za za20
"20"
127.0.0.1:6379> zrange za 2 -1
1) "za30"
2) "za40"
127.0.0.1:6379> zrangebyscore za 20 30
1) "za10"
2) "za20"
3) "za30"
127.0.0.1:6379> zrem za za30
(integer) 1
127.0.0.1:6379> ZREVRANGE za 2 4
1) "za10"
127.0.0.1:6379> ZREVRANGE za 1 3
1) "za20"
2) "za10"
127.0.0.1:6379> zcount za 1 5
(integer) 0
127.0.0.1:6379> zcount za 10 50
(integer) 3
127.0.0.1:6379> zcard za
(integer) 3
127.0.0.1:6379> zrevrank za za20
(integer) 1
127.0.0.1:6379> zremrangebyrank za 1 3
(integer) 2
127.0.0.1:6379> zcard za
(integer) 1
127.0.0.1:6379> zrange za 0 5
1) "za10"
127.0.0.1:6379> zremrangebyscore za 10 20
(integer) 1
127.0.0.1:6379>

ZLEXCOUNT key min max:对于所有score都一样的集合,返回介于min和max之间的成员数量。

ZRANGEBYLEX key min max [LIMIT offset count]:对于所有score都一样的集合,返回指定成员区间内的成员,按字典正序排列, 分数必须相同。

如何指定范围区间:合法的min和max参数必须包含'('或'[','('表示开区间(指定的值不会被包含在范围内)。'['表示闭区间(指定的值会被包围在内)。

特殊值+和-在min和max参数中具有特殊的意义。其中+表示正无限,-表示负无限。

ZREVRANGEBYLEX key max min [LIMIT offset count]:返回指定成员区间内的成员,按字典倒序排列, 分数必须相同。

ZREMRANGEBYLEX key min max:对于一个score都相同的集合key,删除位于min和max之间所有成员。

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]:将多个排序集的交集保存到destination集合中,其中numkeys指定key的数量。新的score是给定集合中成员score的和。

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]:添加多个排序集和导致排序的设置存储在一个新的关键

ZSCAN key cursor [MATCH pattern] [COUNT count]:迭代sorted sets里面的元素

Redis常用命令--SortedSet的更多相关文章

  1. Redis常用命令

    Redis常用命令Redis提供了丰富的命令对数据库和各种数据类型进行操作,这些命令可以再Linux终端使用.1.键值相关命令2.服务器相关命令 一.键值相关命令 1.get get 键值 当 key ...

  2. 第2讲 Redis常用命令与高级应用

    目录 一.redis数据类型 5. sorted sets类型和操作 二.Redis常用命令 1.键值相关命令 2.服务器相关命令 三. redis高级应用 1. 给redis服务器设置密码 2.持久 ...

  3. Redis常用命令手册:服务器相关命令

    Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用.在编程时,比如各类语言包,这些命令都有对应的方法.下面将Redis提供的命令做一 ...

  4. redis redis常用命令及内存分析总结(附RedisClient工具简介

    redis常用命令及内存分析总结(附RedisClient工具简介 by:授客 QQ:1033553122 redis-cli工具 查看帮助 连接redis数据库 常用命令 exists key se ...

  5. Redis常用命令与高级应用

    附: 127.0.0.1:6379> set xiaofei 小飞 OK 127.0.0.1:6379> get xiaofei "\xe5\xb0\x8f\xe9\xa3\x9 ...

  6. Redis快速起步及Redis常用命令大全

    本系列教程内容提要 Java工程师之Redis实战系列教程教程是一个学习教程,是关于Java工程师的Redis知识的实战系列教程,本系列教程均以解决特定问题为目标,使用Redis快速解决在实际生产中的 ...

  7. redis配置密码 redis常用命令

    redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 [plain] view plain copy   #requi ...

  8. redis常用命令及持久化机制

    redis  常用命令 查找redis服务文件 find / -name  redis-server 查找配置文件 find / -name redis.conf 启动服务时候,要指定配置文件 启动r ...

  9. Redis 常用命令 大全

    Redis 常用命令 发现几个很好的 Redis 常用命令汇总大全网页,分享给小伙伴们~ 1.Redis 命令参考 http://redisdoc.com/string/index.html 2.W3 ...

随机推荐

  1. input输入框限制输入正整数、小数、字母、文字

    有的时候需要限制input的输入格式: 例如,输入大于0的正整数 <input onkeyup="if(this.value.length==1){this.value=this.va ...

  2. C#简单入门

    公司给的一个小的practice C# vs2017 Stage 1 (cmd)1. Parse the dll (reflection)2. Write all the public methods ...

  3. 201621123040《Java程序设计》第十一周学习总结

    1.本周学习总结 1.1以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 2.1源代码阅读:多线程程序BounceThread 2.1.1BallRunnable类有什么用?为什 ...

  4. Beta版本敏捷冲刺每日报告——Day2

    1.情况简述 Beta阶段第二次Scrum Meeting 敏捷开发起止时间 2017.11.3 08:00 -- 2017.11.3 22:00 讨论时间地点 2017.11.3晚9:00,软工所实 ...

  5. Beta阶段敏捷冲刺报告-DAY4

    Beta阶段敏捷冲刺报告-DAY4 Scrum Meeting 敏捷开发日期 2017.11.5 会议时间 11:30 会议地点 羽毛球场 参会人员 全体成员 会议内容 bug的原因讨论, 测试内容安 ...

  6. 那些在django开发中遇到的坑

    1. 关于csrf错误 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或 ...

  7. 冲刺No.4

    Alpha冲刺第四天 站立式会议 项目进展 今日团队开始对项目的核心功能中的事务管理员模块与学生模块进行了编码,主要内容是对学生基本信息的增删改与事务管理员信息的增删改,这部分的内容是整个项目最基础的 ...

  8. 利用python实现简单登陆注册系统

    #!/usr/bin/env python # -*- coding:utf-8 -*- def login(username,password): ''' :param username:用户名 : ...

  9. 《招一个靠谱的移动开发》iOS面试题及详解(上篇)

    以下问题主要用于技术的总结与回顾 主要问题总结 单例的写法.在单利中创建数组应该注意些什么. NSString 的时候用copy和strong的区别. 多线程.特别是NSOperation 和 GCD ...

  10. 要学好JAVA要注意些什么?

    从自学开始到参加系统的学习JAVA已经差不多有1个月了的时间了,在这段时间以前我也和很多人一样在网上盲目的搜罗一些视频来自己啃,随着时间的积累,对JAVA的认识也有了一定的提升,之前可能因为在IT咨询 ...