千家信息网

Redis中的list命令怎么使用

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍"Redis中的list命令怎么使用",在日常操作中,相信很多人在Redis中的list命令怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Red
千家信息网最后更新 2025年01月21日Redis中的list命令怎么使用

这篇文章主要介绍"Redis中的list命令怎么使用",在日常操作中,相信很多人在Redis中的list命令怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Redis中的list命令怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

list的数据结构

List类型是一个双端链表的结构,容量是2的32次方减1个元素,即40多亿个;其主要功能有push、pop、获取元素等;一般应用在栈、队列、消息队列等场景。

Redis list命令实战

[l/r]push-左/右添加元素

语法:[l/r]push key value [value ...]

以头插或尾插方式插入指定key队列中一个或多个元素

127.0.0.1:6379> lpush pushkey 1 2 3(integer) 3127.0.0.1:6379> lpush pushkey 4(integer) 4127.0.0.1:6379> rpush pushkey 5(integer) 5127.0.0.1:6379> lrange pushkey 0 -11) "4"2) "3"3) "2"4) "1"5) "5"

lrange-查询范围元素

语法: lrange key start stop

获取列表指定范围内的元素

127.0.0.1:6379> lpush products 1 2 3(integer) 3127.0.0.1:6379> lpush products 4 5 6(integer) 6127.0.0.1:6379> lrange products 0 -11) "6"2) "5"3) "4"4) "3"5) "2"6) "1"

linsert-在某元素前后插入元素

语法:linsert key BEFORE|AFTER pivot value

在列表的元素前或者后插入元素

127.0.0.1:6379> lrange products 0 -11) "6"2) "5"3) "4"4) "3"5) "2"6) "1"127.0.0.1:6379> linsert products before 5 a(integer) 7127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "5"4) "4"5) "3"6) "2"7) "1"127.0.0.1:6379> linsert products after a b(integer) 8127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "b"4) "5"5) "4"6) "3"7) "2"8) "1"

llen-获取长度

语法:llen key

获取列表长度

127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "b"4) "5"5) "4"6) "3"7) "2"8) "1"127.0.0.1:6379> llen products(integer) 8

lindex-根据下标获取元素

语法:lindex key index

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

127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "b"4) "5"5) "4"6) "3"7) "2"8) "1"127.0.0.1:6379> lindex products 2"b"

lset-根据下标设置值

语法:lset key index value

通过索引设置列表元素的值

127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "b"4) "5"5) "4"6) "3"7) "2"8) "1"127.0.0.1:6379> lset products 2 BOK127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "B"4) "5"5) "4"6) "3"7) "2"8) "1"

ltrim-截取元素

语法:ltrim key start end

截取队列指定区间的元素,其余元素都删除

127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "B"4) "5"5) "4"6) "3"7) "2"8) "1"127.0.0.1:6379> ltrim products 0 3OK127.0.0.1:6379> lrange products 0 -11) "6"2) "a"3) "B"4) "5"

lrem-移除元素

语法:lrem key count value

移除列表元素

127.0.0.1:6379> lpush test a 1 a 2 a 3 a 4  5 6(integer) 10127.0.0.1:6379> lrange  test 0 -1 1) "6" 2) "5" 3) "4" 4) "a" 5) "3" 6) "a" 7) "2" 8) "a" 9) "1"10) "a"127.0.0.1:6379> lrem test 3 a(integer) 4127.0.0.1:6379> lrange  test 0 -11) "6"2) "5"3) "4"4) "3"5) "2"6) "1"7) "a"

[l/r]pop-从左/右弹出元素

语法:[l/r]pop key

从队列的头或尾弹出节点元素(返回该元素并从队列中删除)

127.0.0.1:6379> lrange  test 0 -11) "6"2) "5"3) "4"4) "3"5) "2"6) "1"127.0.0.1:6379> lpop test"6"127.0.0.1:6379> lrange  test 0 -11) "5"2) "4"3) "3"4) "2"5) "1"127.0.0.1:6379> rpop test"1"127.0.0.1:6379> lrange  test 0 -11) "5"2) "4"3) "3"4) "2"

rpoplpush-移除右元素添加到另一列表左

语法:rpoplpush source destination

移除列表的最后一个元素(右),并将该元素添加到另一个列表(左)并返回

127.0.0.1:6379> lpush src 1 2 3(integer) 3127.0.0.1:6379> lrange src 0 -11) "3"2) "2"3) "1"127.0.0.1:6379> lpush dst a b c(integer) 3127.0.0.1:6379> lrange dst 0 -11) "c"2) "b"3) "a"127.0.0.1:6379> rpoplpush src dst"1"127.0.0.1:6379> lrange src 0 -11) "3"2) "2"127.0.0.1:6379> lrange dst 0 -11) "1"2) "c"3) "b"4) "a"

b[l/r]pop-阻塞弹出左/右一个元素

语法: b[l/r]pop key1 [key2 ...] timeout

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

127.0.0.1:6379> lpush list1 1 2(integer) 2127.0.0.1:6379> lpush list2 a b(integer) 2127.0.0.1:6379> lrange list1 0 -11) "2"2) "1"127.0.0.1:6379> lrange list2 0 -11) "b"2) "a"127.0.0.1:6379> blpop list1 list2 101) "list1"   #弹出元素所属的列表2) "2"       #弹出元素所属的值127.0.0.1:6379> blpop list1 list2 101) "list1"2) "1"127.0.0.1:6379> blpop list1 list2 101) "list2"2) "b"127.0.0.1:6379> blpop list1 list2 101) "list2"2) "a"127.0.0.1:6379> blpop list1 list2 10(nil)(10.08s)  # 列表为空的时候,就等待超时10秒

到此,关于"Redis中的list命令怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0