Redis List

基本的数据类型,在Redis 里面,可以弄成  栈、队列、阻塞队列!

list 所有的命令都是以 L 开头的

基本命令

127.0.0.1:6379> LPUSH list one      # 进栈  会造成压栈
(integer) 1
127.0.0.1:6379> LPUSH list two
(integer) 2
127.0.0.1:6379> LPUSH list thrww
(integer) 3
127.0.0.1:6379> LRANGE list 0 -1
1) "thrww"                        # 0
2) "two"                          # 1
3) "one"                          # 2
127.0.0.1:6379> RPUSH list ZERO
(integer) 4
127.0.0.1:6379> LRANGE list 0 -1  # 从最底下开始添加  
1) "thrww"
2) "two"
3) "one"
4) "ZERO"
127.0.0.1:6379> 

移除命令 RPOP、LPOP

127.0.0.1:6379> lrange list 0 -1
1) "thrww"
2) "two"
3) "one"
4) "ZERO"
127.0.0.1:6379> LPOP list 1            # 从最顶端开始删除
1) "thrww"
127.0.0.1:6379> RPOP list 1            # 从最低端开始删除
1) "ZERO"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> 

通过下标获取 list 某个值

127.0.0.1:6379> LINDEX list 1
"one"
127.0.0.1:6379> LINDEX list 0
"two"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> 

获取 list 长度

127.0.0.1:6379> LPUSH list one
(integer) 1
127.0.0.1:6379> LPUSH list two
(integer) 2
127.0.0.1:6379> LPUSH list three
(integer) 3
127.0.0.1:6379> llen list
(integer) 3
127.0.0.1:6379> 

移除指定的值

127.0.0.1:6379> LPUSH list one
(integer) 1
127.0.0.1:6379> LPUSH list two
(integer) 2
127.0.0.1:6379> LPUSH list three
(integer) 3
127.0.0.1:6379> llen list
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> LPUSH list three
(integer) 4
127.0.0.1:6379> lrem list 1 one
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "three"
3) "two"
                                   # 移除指令  键  移除数量  移除内容
127.0.0.1:6379> lrem list 2 three  # LREM     KEY  COUNT    ELEMENT
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "two"
127.0.0.1:6379> 

list 截取 (trim)

127.0.0.1:6379> RPUSH list one
(integer) 1
127.0.0.1:6379> RPUSH list two
(integer) 2
127.0.0.1:6379> RPUSH list three
(integer) 3
127.0.0.1:6379> RPUSH list frow
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "one"
2) "two"
3) "three"
4) "frow"
127.0.0.1:6379> ltrim list 1 2
OK
127.0.0.1:6379> lrange list 0 -1  #  截取保留 下标0到1
1) "two"
2) "three"
127.0.0.1:6379> 

rpoplpush   移除列表最后一个元素,添加到别的 list 里面

127.0.0.1:6379> rpush mylist one
(integer) 1
127.0.0.1:6379> rpush mylist thow
(integer) 2
127.0.0.1:6379> rpush mylist three
(integer) 3
127.0.0.1:6379> rpoplpush mylist mylist1
"three"
127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "thow"
127.0.0.1:6379> lrange mylist1 0 -1
1) "three"
127.0.0.1:6379> 

Lset ( 将列表中指定下标的值替换为另外一个值,更新操作 )

127.0.0.1:6379> lset list 0 item        # 不存在会报错
(error) ERR no such key
127.0.0.1:6379> lpush list value0
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "value0"
127.0.0.1:6379> lset list 0 item        # 下标为 0 更改为 item
OK
127.0.0.1:6379> lrange list 0 -1
1) "item"
127.0.0.1:6379> 

linsert

127.0.0.1:6379> rpush mylist hello
(integer) 1
127.0.0.1:6379> rpush mylist world
(integer) 2
127.0.0.1:6379> linsert mylist before hello item1
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "item1"
2) "hello"
3) "world"
127.0.0.1:6379> linsert mylist after hello item2
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
1) "item1"
2) "hello"
3) "item2"
4) "world"
127.0.0.1:6379> 

 小结

  1. list 实际是一个链表,before node after , left right 都可以插入值
  2. 如果key 不存在,创建新的链表
  3. 如果key存在,新增内容
  4. 如果移除了所有值,空链表,也代表不存在!
  5. 在两边插入或者改动值,效率最高!中间元素,相对来说效率最高
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值