本篇基于redis 4.0.11版本,学习列表(list)和集合(set)和有序集合(sorted set)相关命令。

  • 列表按照插入顺序排序,可重复,可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  • 集合是 String 类型的无序集合,不能出现重复的数据。
  • 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员,但分数(score)却可以重复。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数权重来为集合中的成员进行从小到大的排序。

列表相关命令:

序号 命令 描述 实例 返回
LPUSH key value1 [value2]  将一个或多个值插入到列表头部 将redis插入列表runoobkey中:LPUSH runoobkey redis

成功:(integer) 1

失败:(integer) 0

LPUSHX key value  将一个值插入到已存在的列表头部 将redis插入已有列表runoobkey2中:LPUSHX runoobkey2 redis

成功:(integer) 1

失败:(integer) 0

LRANGE key start stop  获取列表指定范围内的元素 获取runoobkey列表中的全部值:LRANGE runoobkey 0 -1 1) "mysql"

2) "mongodb"

3) "redis"

4) "redis"
4 BLPOP key1 [key2 ] timeout  移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 移出并获取列表list1的第一个元素,超时时间10s:BLPOP list1 10 (nil)

(10.02s)
BRPOP key1 [key2 ] timeout  移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 移出并获取列表runoobkey的最后一个元素,超时时间10s:BRPOP runoobkey 10 1) "runoobkey"  # 被弹出元素所属的列表键

2) "redis"  # 被弹出的元素 
BRPOPLPUSH source destination timeout  从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 将最后一个值放到msg中,没有元素等10s:BRPOPLPUSH runoobkey msg 10 "redis" # 被弹出的元素 
LINDEX key index  通过索引获取列表中的元素 获取列表runoobkey第一个值:lindex runoobkey 0 "mysql"
LINSERT key BEFORE|AFTER pivot value  在列表的元素前或者后插入元素 在runoobkey列表"mongodb"前插入"insert":linsert runoobkey before "mongodb" "insert" (integer) 3
LLEN key  获取列表长度 llen runoobkey "5"
LPOP key  移出并获取列表的第一个元素 lpop runoobkey "bar"
LREM key count value  移除列表元素 lrem runoobk 0 123 "2"
LSET key index value  通过索引设置列表元素的值 lset list1 1 123456 OK
LTRIM key start stop  对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 ltrim list1 0 1 OK
RPOP key  移除并获取列表最后一个元素 rpop list1 "1234"
RPOPLPUSH source destination  移除列表的最后一个元素,并将该元素添加到另一个列表并返回 rpoplpush list1 runoobkey "12345"
RPUSH key value1 [value2]  在列表中添加一个或多个值 rpush list1 987 988 "4"
17 RPUSHX key value  为已存在的列表添加值    

集合相关命令:

序号 命令 描述 实例 返回
SADD key member1 [member2]  向集合添加一个或多个成员 向集合runoobkey中添加redis:SADD runoobkey redis

成功:(integer) 1

失败:(integer) 0

SCARD key  获取集合的成员数 获取集合sets1成员数:scard sets1 "3"
SDIFF key1 [key2]  返回给定所有集合的差集 返回sets1和sets2差集:sdiff sets1 sets2 1) "redis"
SDIFFSTORE destination key1 [key2]  返回给定所有集合的差集并存储在 destination 中 将sets1和sets2差集放sets3中:sdiffstore sets3 sets1 sets2 OK
SINTER key1 [key2]  返回给定所有集合的交集 返回sets1和sets2交集:sinter sets1 set2  1) "mongodb"
SINTERSTORE destination key1 [key2]  返回给定所有集合的交集并存储在 destination 中

将sets1和sets2交集放sets4中:sinterstore sets4 sets1 sets2

OK
SISMEMBER key member  判断 member 元素是否是集合 key 的成员 判断sets1中是否存在redis:SISMEMBER sets1 redis

存在:(integer) 1

不存在:(integer) 0

SMEMBERS key  返回集合中的所有成员 SMEMBERS runoobkey 1) "mysql"

2) "mongodb"

3) "redis"
SMOVE source destination member  将 member 元素从 source 集合移动到 destination 集合 将mysql从集合sets1移到sets4中:smove sets1 sets4 mysql

成功:(integer) 1

失败:(integer) 0

SPOP key  移除并返回集合中的一个随机元素 spop sets2 mongodb
SRANDMEMBER key [count]  返回集合中一个或多个随机数 返回集合sets5中两个元素:srandmember sets5 2 1) "abcdef"

2) "abcdefgh"
SREM key member1 [member2]  移除集合中一个或多个成员 移除集合sets5中abc abcdfg:srem sets5 abc abcdfg

成功:(integer) 1

失败:(integer) 0

SUNION key1 [key2]  返回所有给定集合的并集 返回集合sets1 sets2 sets3并集:SUNION sets1 sets2 sets3 1) "postgresql"

2) "redis"

3) "mongodb"
SUNIONSTORE destination key1 [key2]  所有给定集合的并集存储在 destination 集合中    
15 SSCAN key cursor [MATCH pattern] [COUNT count]  迭代集合中的元素 查找sets5集合第二个元素 如果匹配m*的返回,不匹配返回空:sscan sets5 2 match m*   1) "0"

2) 1) "mongodb"

有序集合相关命令:

序号 命令 描述 实例 返回
ZADD key score1 member1 [score2 member2]  向有序集合添加一个或多个成员,或者更新已存在成员的分数 ZADD runoobkey 1 redis (integer) 1
ZRANGE key start stop [WITHSCORES]  通过索引区间返回有序集合成指定区间内的成员 返回有序集合sortedsets1中0到10的权重和值:zrange sortedsets1 0 10 withscores 1) "redis"

2) "1"

3) "redis2"

4) "2"

5) "redis3"

6) "3"

7) "redis4"

8) "3"
ZCARD key  获取有序集合的成员数 返回有序集合sortedsets1成员数:zcard sortedsets1 "4"
ZCOUNT key min max  计算在有序集合中指定区间分数的成员数 返回有序集合中分数为2-3的成员数:zcount sortedsets1 2 3 "3"
ZINCRBY key increment member  有序集合中对指定成员的分数加上增量 increment 给有序集合sortedsets1中redis加5:zincrby sortedsets1 5 redis 增加后的值:"11"
ZINTERSTORE destination numkeys key [key ...]  计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中 将sortedsets1和sortedsets2两个集合并集存到sortedsets10中:zinterstore sortedsets10 2  sortedsets1  sortedsets2 成功成员数量:(integer) 4
ZLEXCOUNT key min max  在有序集合中计算指定字典区间内成员数量 集合中大于等于redis 小于redis3的数量:zlexcount sortedsets1 [redis (redis3

集合全部数量:zlexcount sortedsets1 - +
"1";

"4"
ZRANGEBYLEX key min max [LIMIT offset count]  通过字典区间返回有序集合的成员 zrangebylex sortedsets7 (2 [6 1) "3"

2) "5"

3) "6"
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]  通过分数返回有序集合指定区间内的成员 返回集合中大于3的全部成员:ZRANGEBYSCORE sortedsets7 (3 +inf WITHSCORES 

1) "3"

2) "5"

3) "6"

ZRANK key member  返回有序集合中指定成员的索引 返回集合中6的索引:zrank sortedsets7 6  "4"
ZREM key member [member ...]  移除有序集合中的一个或多个成员 移除成员6:zrem sortedsets7 6  
ZREMRANGEBYLEX key min max  移除有序集合中给定的字典区间的所有成员 移除集合中大于4小于等于5的成员:zremrangebylex sortedsets7 (4 [5  "1"
ZREMRANGEBYRANK key start stop  移除有序集合中给定的排名区间的所有成员 ZREMRANGEBYRANK sortedsets7 0 1  "2"
ZREMRANGEBYSCORE key min max  移除有序集合中给定的分数区间的所有成员    
ZREVRANGE key start stop [WITHSCORES]  返回有序集中指定区间内的成员,通过索引,分数从高到底 ZREVRANGE sortedsets7 0 1 WITHSCORES 1) "6"

2) "5"

3) "3"

4) "4"
ZREVRANGEBYSCORE key max min [WITHSCORES]  返回有序集中指定分数区间内的成员,分数从高到低排序    
ZREVRANK key member  返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 zrevrank sortedsets7 4;

zrevrank sortedsets7 3
null;

"1"
ZSCORE key member  返回有序集中,成员的分数值 返回集合3的分数值:zscore sortedsets7 3 "4"
ZUNIONSTORE destination numkeys key [key ...]  计算给定的一个或多个有序集的并集,并存储在新的 key 中    
20 ZSCAN key cursor [MATCH pattern] [COUNT count]  迭代有序集合中的元素(包括元素成员和元素分值) zscan sortedsets7 0 1) "0"

2) 1) "3"

   2) "4"

   3) "6"

   4) "5"

详见:Redis官方文档

上一篇:【Redis】命令学习笔记——哈希(hash)(15个超全字典版)

下一篇学习 HyperLogLog和GEO相关命令

【Redis】命令学习笔记——列表(list)+集合(set)+有序集合(sorted set)(17+15+20个超全字典版)的更多相关文章

  1. 【Redis】命令学习笔记——键(key)(20个超全字典版)

    安装完redis和redis-desktop-manager后,开始学习命令啦!本篇基于redis 4.0.11版本,从对键(key)开始挖坑! 准备工作,使用db1(默认db0,由于之前练习用db0 ...

  2. 【Redis】命令学习笔记——哈希(hash)(15个超全字典版)

    本篇基于redis 4.0.11版本,学习哈希(hash)相关命令. hash 是一个string类型的field和value的映射表,特别适合用于存储对象. 序号 命令 描述 实例 返回 HSET ...

  3. 【Redis】命令学习笔记——字符串(String)(23个超全字典版)

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 本篇基于redis 4.0.11版本,学习字符串( ...

  4. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总

    本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...

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

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

  6. Redis:学习笔记-02

    Redis:学习笔记-02 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 4. 事物 Redis 事务本 ...

  7. Redis:学习笔记-01

    Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...

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

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

  9. mongodb常用命令学习笔记

    mongodb常用命令学习笔记 创建数据库 use DATABASE_NAME eg: use users; 如果数据库不存在,则创建数据库,否则切换到指定数据库.要显示刚刚创建的数据库,需要向数据库 ...

随机推荐

  1. Pycharm 问题:Clear Read-Only Status

    用的是ubuntu系统,一直在普通用户模式下打开Git下建的项目,今天运行神经网络程序时,由于有一个cudnn错误,必须要在sudo模式下才不会报错,所以用sudo试着打开了pycharm,发现是完全 ...

  2. jQuery Event.which 属性

    which属性用于返回触发当前事件时按下的键盘按键或鼠标按钮. 对于键盘和鼠标事件,该属性用于确定你按下的是哪一个键盘按键或鼠标按钮. which属性对DOM原生的event.keyCode和even ...

  3. (转)linux内核调优参数对比和解释

    [net] ######################## cat /proc/sys/net/ipv4/tcp_syncookies # 默认值:1 # 作用:是否打开SYN Cookie功能,该 ...

  4. java-jdk7-forkjoin带有返回值

    来自并发编程网: http://ifeve.com/fork-join-3/ 如果这个任务必须解决一个超过预定义大小的问题,你应该将这个任务分解成更多的子任务,并且用Fork/Join框架来执行这些子 ...

  5. ABP实战--修改语言配置XML至Json

    从ABP官网下载的Zero的多语言配置默认是使用XML文件的,实际使用中XML是没有Json简洁明了的,所以我们将其修改为Json格式. 修改MyLocalizationConfigurer.cs文件 ...

  6. 快排,归并和Shell排序

    快速排序 快速排序的执行流程: (1) 先从数列中取出一个数作为基准数. (2) 将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边. (3)再对左右区间重复第二步,直到各区间只有一个数. ...

  7. bzoj 3600: 没有人的算术

    Description Solution 我们可以给每一个数钦定一个权值 , 这样就可以 \(O(1)\) 比较大小了. 考虑怎么确定权值: 用平衡树来维护 , 我们假设根节点管辖 \([1,2^{6 ...

  8. TFS Negotiate方式登录的IIS配置

    使用vsts-agent连接到tfs(tfs2017)配置代理客户端,可以通过PAT.Negotiate.Integrated.Alternate四种方式登录.(参考) 默认情况下,采用Negotia ...

  9. AutoFac使用方法总结一:注册

    AutoFac是.net平台下的IOC容器产品,它可以管理类之间的复杂的依赖关系.在使用方面主要是register和resolve两类操作. 这篇文章用单元测试的形式列举了AutoFac的常用使用方法 ...

  10. MVC 导出Execl 的总结几种方式 (三)

    第三种方式呢,就是借用第三方插件 NPOI 来实现Execl 导出 第一步:在NuGut包中下载NPOI 组件 第二步:编辑控制器代码 public FileResult ExcelNewKeyPro ...