1、Redis 集合(Set)

参考菜鸟教程:http://www.runoob.com/redis/redis-sets.html

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

  向集合添加一个或多个成员

127.0.0.1:6379> sadd a redis
(integer) 1

  获取集合的成员数

127.0.0.1:6379> scard a
(integer) 3

  判断集合是否包含某元素,返回1表示包含

127.0.0.1:6379> sismember a redis
(integer) 1
127.0.0.1:6379> sismember a redis1
(integer) 0

  返回集合中的所有成员

127.0.0.1:6379> smembers a
1) "redis"
2) "mongodb"
3) "mysql"

2、Redis 有序集合(sorted set)

参考菜鸟教程:http://www.runoob.com/redis/redis-sorted-sets.html

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

  向有序集合添加一个或多个成员,或者更新已存在成员的分数:ZADD key score1 member1 [score2 member2]

127.0.0.1:6379> zadd a 1 redis
(integer) 1
127.0.0.1:6379> zadd a 2 mongodb
(integer) 1
127.0.0.1:6379> zadd a 3 mysql
(integer) 1
127.0.0.1:6379> zadd a 4 mysql
(integer) 0
127.0.0.1:6379> zrange a 0 10 withscores
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

  获取有序集合的成员数

127.0.0.1:6379> zcard a
(integer) 3

  计算在有序集合中指定区间分数的成员数:zcount key min max

127.0.0.1:6379> zcount a 2 3
(integer) 1
127.0.0.1:6379> zcount a 2 4
(integer) 2

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

127.0.0.1:6379> zincrby a 10 mysql //msyql元素的score增加10
"14"

  通过索引区间返回有序集合成指定区间内的成员:zrange key start stop [withscores]

127.0.0.1:6379> zrange a 0 10 withscores //索引区间
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "14"

  在有序集合中计算指定字典区间内成员数量:ZLEXCOUNT key min max

127.0.0.1:6379> zlexcount a - +
(integer) 3
127.0.0.1:6379> zlexcount a [a [f
(integer) 0

  通过字典区间返回有序集合的成员:ZRANGEBYLEX key min max [LIMIT offset count]

127.0.0.1:6379> zrangebylex a - +
1) "redis"
2) "mongodb"
3) "mysql"

  通过分数返回有序集合指定区间内的成员:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]

127.0.0.1:6379> zrangebyscore a 2 14 withscores //分数区间
1) "mongodb"
2) "2"
3) "mysql"
4) "14"

  返回有序集合中指定成员的索引

127.0.0.1:6379> zrank a mysql
(integer) 2

  移除有序集合中的一个或多个成员

127.0.0.1:6379> zrem a mysql mongodb
(integer) 2

  移除有序集合中给定的字典区间的所有成员:ZREMRANGEBYLEX key min max

127.0.0.1:6379> zremrangebylex a - +
(integer) 1

  移除有序集合中给定的排名区间的所有成员:ZREMRANGEBYRANK key start stop 指定索引区间

127.0.0.1:6379> zadd a 1 redis
(integer) 1
127.0.0.1:6379> zadd a 2 mongodb
(integer) 1
127.0.0.1:6379> zadd a 3 mysql
(integer) 1
127.0.0.1:6379> zrange a 0 10 withscores
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "3"
127.0.0.1:6379> zremrangebyrank a 0 2 //索引区间
(integer) 3
127.0.0.1:6379> zrange a 0 10 withscores
(empty list or set)
127.0.0.1:6379>

  移除有序集合中给定的分数区间的所有成员

127.0.0.1:6379> zadd a 1 redis
(integer) 1
127.0.0.1:6379> zadd a 2 mongodb
(integer) 1
127.0.0.1:6379> zadd a 3 mysql
(integer) 1
127.0.0.1:6379> zremrangebyscore a 2 3 //分数区间
(integer) 2
127.0.0.1:6379> zrange a 0 10 withscores
1) "redis"
2) "1"

  返回有序集中指定区间内的成员,通过索引,分数从高到底

127.0.0.1:6379> zadd a 1 reids
(integer) 1
127.0.0.1:6379> zadd a 10 mongodb
(integer) 1
127.0.0.1:6379> zadd a 4 mysql
(integer) 1
127.0.0.1:6379> zrange a 0 2 withscores
1) "reids"
2) "1"
3) "mysql"
4) "4"
5) "mongodb"
6) "10"
127.0.0.1:6379> zrevrange a 0 2
1) "mongodb"
2) "mysql"
3) "reids"
127.0.0.1:6379> zrevrange a 0 2 withscores //索引区间
1) "mongodb"
2) "10"
3) "mysql"
4) "4"
5) "reids"
6) "1"

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

127.0.0.1:6379> zrevrangebyscore a 100 0 withscores
1) "mongodb"
2) "10"
3) "mysql"
4) "4"
5) "reids"
6) "1"

  返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

127.0.0.1:6379> zrevrangebyscore a 100 0 withscores
1) "mongodb"
2) "10"
3) "mysql"
4) "4"
5) "reids"
6) "1"
127.0.0.1:6379> zrevrank a mongodb
(integer) 0 //排名从0开始
127.0.0.1:6379> zrevrank a mysql
(integer) 1

  返回有序集中,成员的分数值

127.0.0.1:6379> zscore a mysql
"4"

redist命令操作(三)--集合Set,有序集合ZSet的更多相关文章

  1. Redis 小白指南(二)- 基础命令和五大类型:字符串、散列、列表、集合和有序集合

    Redis 小白指南(二)- 基础命令和五大类型:字符串.散列.列表.集合和有序集合 引言 目录 基础命令 字符串类型 散列类型 列表类型 集合类型 有序集合类型 基础命令 1.获得符合规则的键名列表 ...

  2. python对redis的常用操作 下 (无序集合,有序集合)

    无序集合: 首先介绍增加,删除和获得所有元素的方法.我将会用第二部分来讨论集合的特殊操作: In [136]: x.sadd("challenge", 1,2,3,4,5,6,7, ...

  3. 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表

    python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...

  4. Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合

    Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合 引言 开篇<Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍>已经介绍了 Redis 的 ...

  5. 高可用Redis(四):列表,集合与有序集合

    1.列表类型 1.1 列表数据结构 左边为key,是字符串类型 右边为value,是一个有序的队列,与python的列表结构相同 可以在Redis中对列表的value进行如下操作 从左边添加元素 从右 ...

  6. Redis操作集合,有序集合

    Set操作,Set集合就是不允许重复的列表 sadd(name,values) 1 # name对应的集合中添加元素 scard(name) 1 获取name对应的集合中元素个数 sdiff(keys ...

  7. python学习之-- redis模块操作 集合和有序集合

    redis 模块操作之 集合set和有序集合zset Set 集合操作,不允许重复的列表sadd(name,value):name对应的集合中添加元素scard(name):获取name对应的集合中元 ...

  8. redis学习(七)——五大数据类型总结:字符串、散列、列表、集合和有序集合

    目录 字符串类型(String) 散列类型(Hash) 列表类型(List) 集合类型(Set) 有序集合类型(SortedSet) 其它命令 一.字符串类型(String) 1.介绍: 字符串类型是 ...

  9. redis有序集合性能 列表、集合、有序集合

    https://www.cnblogs.com/pirlo21/p/7120935.html 1.1 列表 列表(list)类型是用来存储多个字符串,元素从左到右组成一个有序的集合.列表中的每个字符串 ...

随机推荐

  1. 灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?

    灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟? 历史进入2019年,放眼望去,今天的整个技术大环境和生态都发生了很大的变化.在己亥猪年春节刚刚过去的早春时节,我们来梳理和展望一下整个 ...

  2. Python练习:小程序,列车出票程序

    # 需求:列车某结车厢座位有15行,5列,初始状态均为'有票',当乘客选了座次,下单后,变更为'已售' # 下单时,要显示所有座位的状态(有票or已售) # 下单完毕后,显示下单后的座位状态. lin ...

  3. 【论文速读】Chuhui Xue_ECCV2018_Accurate Scene Text Detection through Border Semantics Awareness and Bootstrapping

    Chuhui Xue_ECCV2018_Accurate Scene Text Detection through Border Semantics Awareness and Bootstrappi ...

  4. LR12中针对WebServices协议的三种脚本开发模式

    一,webservices协议简介 webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接, 其中最基本的协议包括soap,wsdl,uddi ...

  5. 使用4K分辨率,然后放大DIP200%,软件界面异常.

    简单:WFM主界面.AutoScaleMode  选中DIP,然后使用表格容器,容器分割,容器.就可以快速迁移旧程序. 复杂点:读取桌面分辨率,DIP放大....

  6. springmvc配置之mvc:annotation-driven

    为了简化springmvc配置,spring同时引入了mvc namespace, 配置了 <mvc:annotation-driven/> spring会默认注册a RequestMap ...

  7. Comparing Spring AOP and AspectJ

    AOP 概念 在我们开始之前 , 让我们做一个快速.高级别审查的核心术语和概念 : 方面 — —标准 / 特征代码被分散在多个场所中的应用 , 通常不同于实际的业务逻辑 (例如 , 交易管理) .各方 ...

  8. 解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题

    解决办法 找到安装IDEA的bin目录将idea.exe.vmoptions和idea64.exe.vmoptions两个文件打开分别在文件最末尾添加-Dfile.encoding=UTF-8

  9. python基础_格式化输出(%用法和format用法)

      目录 %用法 format用法 %用法 1.整数的输出 %o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制 1 >>> print('%o' % 2 ...

  10. shell编程(七)之字符串处理

    字符串切片 ${var:offset:number} 取字符串的最右侧几个字符: ${var: -length} 注意: 冒号后必须有一个空白字符 #!/bin/bash var="chen ...