【Redis】命令学习笔记——列表(list)+集合(set)+有序集合(sorted set)(17+15+20个超全字典版)
本篇基于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" |
|
| 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个超全字典版)的更多相关文章
- 【Redis】命令学习笔记——键(key)(20个超全字典版)
安装完redis和redis-desktop-manager后,开始学习命令啦!本篇基于redis 4.0.11版本,从对键(key)开始挖坑! 准备工作,使用db1(默认db0,由于之前练习用db0 ...
- 【Redis】命令学习笔记——哈希(hash)(15个超全字典版)
本篇基于redis 4.0.11版本,学习哈希(hash)相关命令. hash 是一个string类型的field和value的映射表,特别适合用于存储对象. 序号 命令 描述 实例 返回 HSET ...
- 【Redis】命令学习笔记——字符串(String)(23个超全字典版)
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 本篇基于redis 4.0.11版本,学习字符串( ...
- 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总
本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...
- Redis 小白指南(二)- 基础命令和五大类型:字符串、散列、列表、集合和有序集合
Redis 小白指南(二)- 基础命令和五大类型:字符串.散列.列表.集合和有序集合 引言 目录 基础命令 字符串类型 散列类型 列表类型 集合类型 有序集合类型 基础命令 1.获得符合规则的键名列表 ...
- Redis:学习笔记-02
Redis:学习笔记-02 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 4. 事物 Redis 事务本 ...
- Redis:学习笔记-01
Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...
- Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合
Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合 引言 开篇<Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍>已经介绍了 Redis 的 ...
- mongodb常用命令学习笔记
mongodb常用命令学习笔记 创建数据库 use DATABASE_NAME eg: use users; 如果数据库不存在,则创建数据库,否则切换到指定数据库.要显示刚刚创建的数据库,需要向数据库 ...
随机推荐
- C/C++ -- Gui编程 -- Qt库的使用 -- 理解主窗体构造函数
MyWidget做父窗体 MyWidget的构造函数中可以手动添加组件 Ui::MyWidget存放子部件 Ui::MyWidget执行setupUi()函数为子部件开辟空间,指定父窗体 MyWidg ...
- Python -- Gui编程 -- Tkinter的使用 -- 对话框消息框
1.消息框 tkMessageBox.py import tkinter from tkinter import messagebox def cmd(): global n global butto ...
- python单元测试pytest
1.pytest简介 pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. 执行测试过程中可以将某些测试 ...
- java-多线程future等待返回
多线程中需要返回值, java中有个fork/join模型, 没有细研究, 简单实用callable进行了返回 Thread1 package com.iwhere.easy.travel.test. ...
- mysql RR下不存在则插入
主要看并发事务中不存在则插入(只有key索引)的阻塞情况. 表定义: mysql> desc user; +-------------+------------------+------+--- ...
- 问题集录--Java高级软件工程师面试考纲(转)
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- 云存储(Swift+Keystone)部署策略
Swift是OpenStack的对象存储模块,Keystone是OpenStack的权限验证模块.可以于这两个模块搭建一个较为完善的云存储系统. 1.官方方案 云存储的服务器分三种类型: 验证节点 A ...
- MVC中页面传值方式总结
MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...
- Git报错:error: cannot open .git/FETCH_HEAD: Read-only file system
Git:git pull时报错 error: cannot open .git/FETCH_HEAD: Read-only file system 查看该文件: 未在网上找到解决办法,重启服务器就好了 ...
- 使用T4Scaffolding 创建自己的代码生成
nuget查找引入T4Scaffolding.Core 这个是最低层的,没有其他依赖,当然也没有现成的模板 这个有对EF的依赖,自带了生成DBContext的模板 这个自带了一些mvc的contr ...