Redis 笔记(三)—— LIST 常用命令

Stella981
• 阅读 489

常用命令

命令

用例和描述

RPUSH

RPUSH key value [value ...] —— 将一个或多个值推入列表的右端

LPUSH

LPUSH key value [value ...] —— 将一个或多个值推入列表的左端

RPOP

RPOP key —— 移除并返回列表最右端的元素

LPOP

LPOP key —— 移除并返回列表最左端的元素

LINDEX

LINDEX key offset —— 返回列表中偏移量为 offset 的元素

LRANGE

LRANGE key start end —— 返回列表从 start 到 end 偏移量范围内的元素(包含 start, end)

LTRIM

LTRIM key start end —— 对列表进行修剪,只保留从 start 到 end 的元素(包含 start, end)

例子 :

127.0.0.1:6379> rpush list-key last
(integer) 1
127.0.0.1:6379> lpush list-key first
(integer) 2
127.0.0.1:6379> rpush list-key "new last"
(integer) 3
127.0.0.1:6379> lrange list-key 0 -1
1) "first"
2) "last"
3) "new last"
127.0.0.1:6379> lpop list-key
"first"
127.0.0.1:6379> lpop list-key
"last"
127.0.0.1:6379> lrange list-key 0 -1
1) "new last"
127.0.0.1:6379> rpush list-key a b c
(integer) 4
127.0.0.1:6379> lrange list-key 0 -1
1) "new last"
2) "a"
3) "b"
4) "c"
127.0.0.1:6379> ltrim list-key 2 -1
OK
127.0.0.1:6379> lrange list-key 0 -1
1) "b"
2) "c"

阻塞式的列表弹出命令以及在列表之间移动元素的命令

命令

用例和描述

BLPOP

BLPOP key [key ...] timeout —— 从第一个非空列表中弹出最左端的元素,或者在 timeout 秒之内阻塞并等待可弹出的元素出现

BRPOP

BRPOP key [key ...] timeout —— 基本同 BLPOP,只是是从最右端弹出

RPOPLPUSH

RPOPLPUSH source-key dest-key —— 从 source-key 列表中弹出最右端元素插入 dest-key 最左端,并返回此元素

BRPOPLPUSH

BRPOPLPUSH source-key dest-key timeout —— 从 source-key 列表弹出最右端的元素,插入到 dest-key 的最左端,并返回此元素,如果 source-key 为空,那么在 timeout 秒之内阻塞并等待可弹出的元素出现

例子:

127.0.0.1:6379> rpush list item1
(integer) 1
127.0.0.1:6379> rpush list item2
(integer) 2
127.0.0.1:6379> rpush list2 item3
(integer) 1
127.0.0.1:6379> brpoplpush list2 list 1
"item3"
127.0.0.1:6379> brpoplpush list2 list 1
(nil)
(1.01s)
127.0.0.1:6379> lrange list 0 -1
1) "item3"
2) "item1"
3) "item2"
127.0.0.1:6379> lrange list2 0 -1
(empty list or set)
127.0.0.1:6379> brpoplpush list list2 1
"item2"
# BLPOP 会从左到右检查列表,并对最先遇到的非空列表执行弹出操作
127.0.0.1:6379> blpop list list2 1
1) "list"  # 弹出元素所属的列表
2) "item3"  # 弹出的元素
127.0.0.1:6379> blpop list list2 1
1) "list"
2) "item1"
127.0.0.1:6379> blpop list list2 1
1) "list2"
2) "item2"
127.0.0.1:6379> blpop list list2 1
(nil) # 结果
(1.04s) # 等待时间
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Stella981 Stella981
3年前
Redis 列表命令记录
新增的常用命令从列表右端插入值(1N个)(rpushlistkeycba)rpushkeyvalue1value2...valueN时间复杂度为O(1N)从列表左端插入值(1N个)(lpushlistkeycba)lpushkeyvalue1
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这