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