Redis的List数据类型及常用命令

Redis的List数据类型及常用命令

 

List可以想成一个双向链表

 

所有的List命令大多都是以l开头的

 

创建数据 LPUSH

插入数据是倒序 ,相当于插入的值放在列表的头部

127.0.0.1:6379> LPUSH list one two three
(integer) 3
127.0.0.1:6379> LRANGE list 0 2
1) "three"
2) "two"
3) "one"

创建数据 RPUSH

插入数据是正序 ,相当于插入的值放在列表的尾部

127.0.0.1:6379> RPUSH list1 one two three
(integer) 3
127.0.0.1:6379> LRANGE list1 0 -1
1) "one"
2) "two"
3) "three"

LRANGE获得数据

127.0.0.1:6379> LRANGE list 0 1
1) "three"
2) "two"
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"

LPOP 移除数据 移除列表最左端的元素

127.0.0.1:6379> LRANGE list1 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> LPOP list1
"one"
127.0.0.1:6379> LRANGE list1 0 -1
1) "two"
2) "three"

RPOP 移除数据 移除列表最右端的元素

127.0.0.1:6379> LRANGE list1 0 -1
1) "two"
2) "three"
127.0.0.1:6379> RPOP list1
"three"
127.0.0.1:6379> LRANGE list1 0 -1
1) "two"

LINDEX获取指定下标的值

127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> LINDEX list 1
"two"

LREM移除指定个数的值

127.0.0.1:6379> LREM list 1 one
(integer) 1
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
​
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "one"
3) "three"
4) "two"
5) "one"
6) "three"
7) "two"
127.0.0.1:6379> LREM list 2 one
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "three"
3) "two"
4) "three"
5) "two"

llen查看列表的长度

127.0.0.1:6379> llen list
(integer) 3

LTRIM通过下标截取指定长度的列表

127.0.0.1:6379> LPUSH list one two three four five
(integer) 5
127.0.0.1:6379> LRANGE list 0 -1
1) "five"
2) "four"
3) "three"
4) "two"
5) "one"
127.0.0.1:6379> LTRIM list 0 3
OK
127.0.0.1:6379> LRANGE list 0 -1
1) "five"
2) "four"
3) "three"
4) "two"

RPOPLPUSH移除当前列表的最后一个元素pusl到另一个列表

127.0.0.1:6379> RPUSH list 0 1 2
(integer) 3
127.0.0.1:6379> RPOPLPUSH list mylist
"2"
127.0.0.1:6379> LRANGE list 0 -1
1) "0"
2) "1"
127.0.0.1:6379> LRANGE mylist 0 -1
1) "2"
127.0.0.1:6379> RPOPLPUSH list mylist
"1"
127.0.0.1:6379> LRANGE list 0 -1
1) "0"
127.0.0.1:6379> LRANGE mylist 0 -1
1) "1"
2) "2"

LSET 更新指定下标的值,如果列表不存在或指定下标值不存在会保错

127.0.0.1:6379> EXISTS lsit
(integer) 0
127.0.0.1:6379> lset lsit 0 item
(error) ERR no such key
127.0.0.1:6379> LPUSH list 0
(integer) 1
127.0.0.1:6379> LRANGE list 0 -1
1) "0"
127.0.0.1:6379> LSET list 0 item
OK
127.0.0.1:6379> LRANGE list 0 -1
1) "item"
127.0.0.1:6379> LSET list 1 item2
(error) ERR index out of range

LINSERT可以在指定的元素前或元素后插入值,before元素 前,after元素 后

127.0.0.1:6379> LRANGE list 0 -1
1) "item"
127.0.0.1:6379> LINSERT list before item first
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "first"
2) "item"
127.0.0.1:6379> LINSERT list after first ok
(integer) 3
127.0.0.1:6379> LRANGE list 0 -1
1) "first"
2) "ok"
3) "item"

 

**学习参考狂神说java**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值