本篇基于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; 如果数据库不存在,则创建数据库,否则切换到指定数据库.要显示刚刚创建的数据库,需要向数据库 ...
随机推荐
-
Windows api实现桌面任务栏隐藏\显示
//隐藏任务栏 HWND hWnd = ::FindWindow(TEXT("Shell_traywnd"),TEXT("")); ::SetWindowPos ...
-
python数据库(mysql)操作
一.软件环境 python环境默认安装了sqlite3,如果需要使用sqlite3我们直接可以在python代码模块的顶部使用import sqlite3来导入该模块.本篇文章我是记录了python操 ...
-
IOS中多版本,多设备类型支持注意事项
IOS系统从07年出来,到现在也有6年了,每年发布一次到两次新的设备,从iPhone1,iPhone2 ... iPhone4s再到最新的iPhone5.硬件在升级的过程中CPU的架构也可能发生变化, ...
-
include(thinkphp常用内置标签)
变量输出使用普通标签就足够了,但是要完成其他的控制.循环和判断功能,就需要借助模板引擎的标签库功能了,系统内置标签库的所有标签无需引入标签库即可直接使用. XML标签有两种,包括闭合标签和开放标签,一 ...
-
hdu 1950 最长上升子序列
//Accepted 3540 KB 62 ms //dp 最长上升子序列 #include <cstdio> #include <cstring> #include < ...
-
hdu 2083
ps:N个数中,中位数是最小距离...第一次WA是因为排序之后最小和最大相加除2...应该是找他们的中位数,而不是中间数. 代码: #include "stdio.h" #incl ...
-
Ubuntu 12.04 Desktop配置XAMPP【转】
转载:[ubuntu][xampp]开发环境配置 XAMPP 并不适用于生产环境,而仅供开发环境使用.XAMPP 被设置为尽量开放,并提供开发者任何他/她想要的功能.这对于开发环境来说是很棒的,但对于 ...
-
Zoom属性的使用介绍(IE私有属性)
其实Zoom属性是IE浏览器的专有属性,Firefox等浏览器不支持.它可以设置或检索对象的缩放比例.除此之外,它还有其他一些小作用,比如触发ie的hasLayout属性,清除浮动.清除margi ...
-
flask form表单验证
新建forms.py文件 #!/usr/bin/env python #-*-coding:utf--*- #导入模块 from flask_wtf import FlaskForm #FlaskFo ...
-
python模块之imghdr(识别不同格式的图片文件)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之imghdr(识别不同格式的图片文件) import imghdr '''>> ...