redis list类型命令

备注:测试版本 redis 4.0.9

列表(List)命令概述

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

命令概述
BLPOP key1 [key2 ] timeout移出并获取列表的第一个元素,
如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
BRPOP key1 [key2 ] timeout移出并获取列表的最后一个元素,
如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
BRPOPLPUSH source destination timeout从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;
如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
BRPOPLPUSH source destination timeout从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;
如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
LINDEX key index通过索引获取列表中的元素
LINSERT key BEFORE or AFTER pivot value在列表的元素前或者后插入元素
LLEN key获取列表长度
LPOP key移出并获取列表的第一个元素
LPUSH key value1 [value2]将一个或多个值插入到列表头部
LPUSHX key value将一个或多个值插入到已存在的列表头部
LRANGE key start stop获取列表指定范围内的元素
LREM key count value移除列表元素
LSET key index value通过索引设置列表元素的值
LTRIM key start stop对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,
不在指定区间之内的元素都将被删除。
RPOP key移除并获取列表最后一个元素
RPOPLPUSH source destination移除列表的最后一个元素,并将该元素添加到另一个列表并返回
RPUSH key value1 [value2]在列表中添加一个或多个值
RPUSHX key value为已存在的列表添加值

1.1 Blpop 命令

语法:

BLPOP key1 [key2 ] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb hive tidb
(integer) 8
127.0.0.1:6379> blpop my_db 1
1) "my_db"
2) "tidb"
127.0.0.1:6379> blpop my_db 2
1) "my_db"
2) "hive"
127.0.0.1:6379> blpop my_db -1
(error) ERR timeout is negative
127.0.0.1:6379> 

-- 后面加入的在最前面
127.0.0.1:6379> lpush my_db2 oracle
(integer) 1
127.0.0.1:6379> lpush my_db2 mysql
(integer) 2
127.0.0.1:6379> blpop my_db2 1
1) "my_db2"
2) "mysql"

1.2 Brpop 命令

语法:

BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb hive tidb
(integer) 8
127.0.0.1:6379> lrange my_db 0 100
1) "tidb"
2) "hive"
3) "mongodb"
4) "redis"
5) "db2"
6) "sqlserver"
7) "mysql"
8) "oracle"
127.0.0.1:6379> BRPOP my_db 2
1) "my_db"
2) "oracle"
127.0.0.1:6379> lrange my_db 0 100
1) "tidb"
2) "hive"
3) "mongodb"
4) "redis"
5) "db2"
6) "sqlserver"
7) "mysql"
127.0.0.1:6379> 

1.3 Brpoplpush 命令

语法:

BRPOPLPUSH source destination timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb hive tidb
(integer) 8
127.0.0.1:6379> lpush my_db2 dm
(integer) 1
127.0.0.1:6379> BRPOPLPUSH my_db my_db2 100
"oracle"
127.0.0.1:6379> lrange my_db 0 100
1) "tidb"
2) "hive"
3) "mongodb"
4) "redis"
5) "db2"
6) "sqlserver"
7) "mysql"
127.0.0.1:6379> lrange my_db2 0 100
1) "oracle"
2) "dm"
127.0.0.1:6379> 

1.4 Lindex 命令

语法:

LINDEX key index 通过索引获取列表中的元素

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb hive tidb
(integer) 8
127.0.0.1:6379> lindex my_db 1
"hive"
127.0.0.1:6379> lindex my_db 0
"tidb"
127.0.0.1:6379> 

1.5 Linsert 命令

语法:

LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql
(integer) 2
127.0.0.1:6379> 
127.0.0.1:6379> linsert my_db before mysql redis
(integer) 3
127.0.0.1:6379> lrange my_db 0 100
1) "redis"
2) "mysql"
3) "oracle"
127.0.0.1:6379> 

1.6 Llen 命令

语法:

LLEN key 获取列表长度

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb hive tidb
(integer) 8
127.0.0.1:6379> llen my_db
(integer) 8
127.0.0.1:6379> 

1.7 Lpop 命令

语法:

LPOP key 移出并获取列表的第一个元素

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> rpush my_db oracle mysql sqlserver db2 redis mongodb hive tidb
(integer) 8
127.0.0.1:6379> lpop my_db
"oracle"
127.0.0.1:6379> lrange my_db 0 100
1) "mysql"
2) "sqlserver"
3) "db2"
4) "redis"
5) "mongodb"
6) "hive"
7) "tidb"
127.0.0.1:6379> 

1.8 Lpush 命令

语法:

LPUSH key value1 [value2] 将一个或多个值插入到列表头部

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb hive tidb
(integer) 8
127.0.0.1:6379> lrange my_db 0 100
1) "tidb"
2) "hive"
3) "mongodb"
4) "redis"
5) "db2"
6) "sqlserver"
7) "mysql"
8) "oracle"
127.0.0.1:6379> 

1.9 Lpushx 命令

语法:

LPUSHX key value 将一个或多个值插入到已存在的列表头部

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> lrange my_db 0 100
1) "mongodb"
2) "redis"
3) "db2"
4) "sqlserver"
5) "mysql"
6) "oracle"
127.0.0.1:6379> lpushx my_db hive tidb
(integer) 8
127.0.0.1:6379> lrange my_db 0 100
1) "tidb"
2) "hive"
3) "mongodb"
4) "redis"
5) "db2"
6) "sqlserver"
7) "mysql"
8) "oracle"
127.0.0.1:6379> 

1.10 Lrange 命令

语法:

LRANGE key start stop 获取列表指定范围内的元素

测试记录

127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> lrange my_db 0 100
1) "mongodb"
2) "redis"
3) "db2"
4) "sqlserver"
5) "mysql"
6) "oracle"

1.11 Lrem 命令

语法:

LREM key count value 移除列表元素
127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> lrem my_db 2 oracle
(integer) 1
127.0.0.1:6379> lrange my_db 0 100
1) "mongodb"
2) "redis"
3) "db2"
4) "sqlserver"
5) "mysql"
127.0.0.1:6379> 
127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> lpush my_db oracle
(integer) 7
127.0.0.1:6379> 
127.0.0.1:6379> lrange my_db 0 100
1) "oracle"
2) "mongodb"
3) "redis"
4) "db2"
5) "sqlserver"
6) "mysql"
7) "oracle"
127.0.0.1:6379> 
127.0.0.1:6379> lrem my_db 2 oracle
(integer) 2
127.0.0.1:6379> lrange my_db 0 100
1) "mongodb"
2) "redis"
3) "db2"
4) "sqlserver"
5) "mysql"
127.0.0.1:6379> 

1.12 Lset 命令

语法:

LSET key index value 通过索引设置列表元素的值

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> lset my_db 0 oracle
(error) ERR no such key
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> lpush my_db redis mongodb
(integer) 2
127.0.0.1:6379> lset my_db 0 oracle
OK
127.0.0.1:6379> 

1.13 Ltrim 命令

语法:

LTRIM key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> ltrim my_db 0 1
OK
127.0.0.1:6379> 
127.0.0.1:6379> lrange my_db 0 100
1) "mongodb"
2) "redis"
127.0.0.1:6379> 

1.14 Rpop 命令

语法:

RPOP key 移除并获取列表最后一个元素

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> lrange my_db 0 100
1) "mongodb"
2) "redis"
3) "db2"
4) "sqlserver"
5) "mysql"
6) "oracle"
127.0.0.1:6379> rpop my_db 
"oracle"
127.0.0.1:6379> lrange my_db 0 100
1) "mongodb"
2) "redis"
3) "db2"
4) "sqlserver"
5) "mysql"
127.0.0.1:6379> 

1.15 Rpoplpush 命令

语法:

RPOPLPUSH source destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 0
127.0.0.1:6379> lpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> lpush my_db2 dm
(integer) 1
127.0.0.1:6379> rpoplpush my_db my_db2
"oracle"
127.0.0.1:6379> lrange my_db2 0 100
1) "oracle"
2) "dm"
127.0.0.1:6379> 

1.16 Rpush 命令

语法:

RPUSH key value1 [value2] 在列表中添加一个或多个值

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> rpush my_db oracle mysql sqlserver db2 redis mongodb
(integer) 6
127.0.0.1:6379> lrange my_db 0 100
1) "oracle"
2) "mysql"
3) "sqlserver"
4) "db2"
5) "redis"
6) "mongodb"
127.0.0.1:6379> 

1.17 Rpushx 命令

语法:

RPUSHX key value 为已存在的列表添加值

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> Rpushx my_db oracle
(integer) 0
127.0.0.1:6379> lrange my_db 0 100
(empty list or set)
127.0.0.1:6379> 
127.0.0.1:6379> rpush my_db mysql
(integer) 1
127.0.0.1:6379> Rpushx my_db oracle
(integer) 2
127.0.0.1:6379> lrange my_db 0 100
1) "mysql"
2) "oracle"
127.0.0.1:6379> 

参考

1.https://www.redis.net.cn/tutorial/3505.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值