本篇基于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. 关于class的签名Signature

    举例1: public class Test05<A, B extends java.util.List<String>, C extends InputStream&Ser ...

  2. 【转】Spark源码分析之-Storage模块

    原文地址:http://blog.csdn.net/aiuyjerry/article/details/8595991 Storage模块主要负责数据存取,包括MapReduce Shuffle中间结 ...

  3. ES6-Proxy and Reflect

    依赖文件地址 :https://github.com/chanceLe/ES6-Basic-Syntax/tree/master/js <!DOCTYPE html> <html&g ...

  4. 词性标注 HMM

    1.给定语料,统计语料中的词性为N,词组为M. 2.HMM关注3个参数 a.初始化概率 b.状态转移矩阵 N*N c.观测状态概率矩阵 N*M 3.状态转移矩阵:词A的词性为词性a,词B的词性为词性b ...

  5. spring之mvc原理分析及简单模拟实现

    在之前的一篇博客中已经简单的实现了spring的IOC和DI功能,本文将在之前的基础上实现mvc功能. 一 什么是MVC MVC简单的说就是一种软件实现的设计模式,将整个系统进行分层,M(model ...

  6. centOS7.2下 搭建gitlab使用git为团队管理代码

    最近更换了阿里云服务器  使用centOS7.2,目前配置1核2G,搭建gitlab有点吃力,另外如果1核1g就不要搭建了,推荐配置是2核4G以上 下面来简单记录整个搭建过程 注意: 本次实验OS为c ...

  7. iOS开源项目周报0406

    由OpenDigg 出品的iOS开源项目周报第十五期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Tangra ...

  8. [转]Global exception handling in Web API 2.1 and NLog

    本文转自:https://stackoverflow.com/questions/25865610/global-exception-handling-in-web-api-2-1-and-nlog ...

  9. dev控件ASPxComboBox设置ReadOnly="true"后

    dev控件ASPxComboBox设置ReadOnly="true"后,在后台OnCallback事件中赋值前台不显示

  10. The type org.springframework.jms.JmsException cannot be resolved报错解决

    在调用JmsTemplate的send方法时,一直报编译时异常.如下: 异常提示是无法解析org.SpringFrawork.jms.JmsException类型.如下: The type org.s ...