redis之lists类型

lists类型及操作

 list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列

一、lpush 在key对应的list头部添加字符串元素

  127.0.0.1:6379> lpush yyclist "word"
(integer) 1
127.0.0.1:6379> lpush yyclist "hello"
(integer) 2
127.0.0.1:6379> lrange yyclist 0 -1
1) "hello"
2) "word"

二、rpush 在key对应的list尾部添加字符串元素

127.0.0.1:6379> rpush list2 "hello"
(integer) 1
127.0.0.1:6379> rpush list2 "world"
(integer) 2
127.0.0.1:6379> lrange list2 0 -1
1) "hello"
2) "world"

三、linsert 在key对应的list的特定位置前后者后添加字符串

127.0.0.1:6379> lpush list3 one
(integer) 1
127.0.0.1:6379> ipush list3 two
(error) ERR unknown command 'ipush'
127.0.0.1:6379> lrange list3 0 -1
1) "one"
127.0.0.1:6379> lpush list3 two
(integer) 2
127.0.0.1:6379> lrange list3 0 -1
1) "two"
2) "one"
127.0.0.1:6379> linsert list3 before one three
(integer) 3
127.0.0.1:6379> lrange list3 0 -1
1) "two"
2) "three"
3) "one"

四、lset   设置list中指定下标的元素值

127.0.0.1:6379> lpush list5 one
(integer) 1
127.0.0.1:6379> lpush list5 two
(integer) 2
127.0.0.1:6379> lpush list5 three
(integer) 3
127.0.0.1:6379> lrange list5 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lset list5 1 four
OK
127.0.0.1:6379> lrange list5 0 -1
1) "three"
2) "four"
3) "one"

五、lrem  从key对应的list删除n个和value相同的元素。(n<0从尾删除,n=0全部删除)

127.0.0.1:6379> rpush list6 "hello"
(integer) 1
127.0.0.1:6379> rpush list6 "hello"
(integer) 2
127.0.0.1:6379> lrem list6 1 "hello"
(integer) 1
127.0.0.1:6379> lrange list6 0 -1
1) "hello"

六、ltrim

保留指定key范围内的数据

27.0.0.1:6379> lpush list8 one
(integer) 1
127.0.0.1:6379> lpush list8 two
(integer) 2
127.0.0.1:6379> lpush list8 three
(integer) 3
127.0.0.1:6379> lpush list8 four
(integer) 4
127.0.0.1:6379> lrange list8 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> ltrim list8 1 2
OK
127.0.0.1:6379> lrange list8 0 -1
1) "three"
2) "two"
127.0.0.1:6379>

七、lpop  从list头部删除元素,并返回删除元素

127.0.0.1:6379> rpush list10 one
(integer) 1
127.0.0.1:6379> rpush list10 two
(integer) 2
127.0.0.1:6379> rpush list10 three
(integer) 3
127.0.0.1:6379> lrange list10 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> lpop list10
"one"
127.0.0.1:6379>

八、rpop 从list尾部删除元素,并返回删除元素

127.0.0.1:6379> rpop list10
"three"

九、rpoplpush  从第一个list的尾部移除元素并添加到第二个list的头部

127.0.0.1:6379> lpush yyc one
(integer) 1
127.0.0.1:6379> lpush yyc two
(integer) 2
127.0.0.1:6379> lrange yyc 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lpush yyc1 three
(integer) 1
127.0.0.1:6379> lpush yyc1 four
(integer) 2
127.0.0.1:6379> lrange yyc1 0 -1
1) "four"
2) "three"
127.0.0.1:6379> rpoplpush yyc yyc1
"one"
127.0.0.1:6379> lrange yyc1 0 -1
1) "one"
2) "four"
3) "three"

十、lindex 返回名称为key的list中index位置的元素

127.0.0.1:6379> lindex yyc1 0
"one"
127.0.0.1:6379> lindex yyc1 2
"three"

十一、llen  返回key对应list长度

127.0.0.1:6379> llen yyc1
(integer) 3


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值