redis之List操作

redis之List操作

List是一个字符串链表,left和right都可以插入添加
如果键不存在,创建新的列表
如果键已经存在,新增内容
如果键全部移除,对应的键也就消失了
链表的操作头尾效率都很高,但操作中间元素,效率就不行了
List先进后出:LPUSH list1 1 2 3 4 5 6
List先进先出:RPUSH list2 1 2 3 4 5 6
List查询:LRANGE list2 0 -1

   	  127.0.0.1:6379[1]> LPUSH list1 1 2 3 4 5 6
      (integer) 6
      127.0.0.1:6379[1]> LRANGE list1 0 -1
      1) "6"
      2) "5"
      3) "4"
      4) "3"
      5) "2"
      6) "1"
      127.0.0.1:6379[1]> RPUSH list2 1 2 3 4 5 6
      (integer) 6
      127.0.0.1:6379[1]> LRANGE list2 0 -1
      1) "1"
      2) "2"
      3) "3"
      4) "4"
      5) "5"
      6) "6"
      127.0.0.1:6379[1]>

List取出顶部:LPOP list1
List取出底部:RPOP list1

   	  127.0.0.1:6379[1]> LRANGE list1 0 -1
      1) "6"
      2) "5"
      3) "4"
      4) "3"
      5) "2"
      6) "1"
      127.0.0.1:6379[1]> LPOP list1
      "6"
      127.0.0.1:6379[1]> RPOP list1
      "1"
      127.0.0.1:6379[1]>

List长度:LLEN list1

   	  127.0.0.1:6379[1]> LRANGE list1 0 -1
      1) "5"
      2) "4"
      3) "3"
      4) "2"
      127.0.0.1:6379[1]> LLEN list1
      (integer) 4

List删除2个1(RPUSH list3 1 1 1 1 2 2 2 2 3 3 3 3):LREM list3 2 1

   	  127.0.0.1:6379[1]> RPUSH list3 1 1 1 1 2 2 2 2 3 3 3 3
      (integer) 12
      127.0.0.1:6379[1]> LREM list3 2 1
      (integer) 2
      127.0.0.1:6379[1]> LRANGE list3 0 -1
       1) "1"
       2) "1"
       3) "2"
       4) "2"
       5) "2"
       6) "2"
       7) "3"
       8) "3"
       9) "3"
      10) "3"
      127.0.0.1:6379[1]>

List截取list1指定范围的值,再赋值给list1:LTRIM list1 1 2

   	   127.0.0.1:6379[1]> LRANGE list3 0 -1
       1) "1"
       2) "1"
       3) "2"
       4) "2"
       5) "2"
       6) "2"
       7) "3"
       8) "3"
       9) "3"
      10) "3"
      127.0.0.1:6379[1]> LTRIM list3 1 2
      OK
      127.0.0.1:6379[1]> LRANGE list3 0 -1
      1) "1"
      2) "2"
      127.0.0.1:6379[1]>

List list1底出栈list2顶压栈:RPOPLPUSH list1 list2

   	  127.0.0.1:6379[1]> LRANGE list1 0 -1
      1) "5"
      2) "4"
      3) "3"
      4) "2"
      127.0.0.1:6379[1]> LRANGE list2 0 -1
      1) "1"
      2) "2"
      3) "3"
      4) "4"
      5) "5"
      6) "6"
      127.0.0.1:6379[1]> RPOPLPUSH list1 list2
      "2"
      127.0.0.1:6379[1]> LRANGE list1 0 -1
      1) "5"
      2) "4"
      3) "3"
      127.0.0.1:6379[1]> LRANGE list2 0 -1
      1) "2"
      2) "1"
      3) "2"
      4) "3"
      5) "4"
      6) "5"
      7) "6"
      127.0.0.1:6379[1]>

List将下标为1的重新设置值xx:LSET list2 1 xx

   	  127.0.0.1:6379[1]> LRANGE list2 0 -1
      1) "2"
      2) "1"
      3) "2"
      4) "3"
      5) "4"
      6) "5"
      7) "6"
      127.0.0.1:6379[1]> LSET list2 1 xx
      OK
      127.0.0.1:6379[1]> LRANGE list2 0 -1
      1) "2"
      2) "xx"
      3) "2"
      4) "3"
      5) "4"
      6) "5"
      7) "6"
      127.0.0.1:6379[1]>

List在list2的xx前面/后面添加值java:LINSERT list2 before/after xx java

   	  127.0.0.1:6379[1]> LRANGE list2 0 -1
      1) "2"
      2) "xx"
      3) "2"
      4) "3"
      5) "4"
      6) "5"
      7) "6"
      127.0.0.1:6379[1]> LINSERT list2 before xx java
      (integer) 8
      127.0.0.1:6379[1]> LINSERT list2 after xx java
      (integer) 9
      127.0.0.1:6379[1]> LRANGE list2 0 -1
      1) "2"
      2) "java"
      3) "xx"
      4) "java"
      5) "2"
      6) "3"
      7) "4"
      8) "5"
      9) "6"
      127.0.0.1:6379[1]>

系列文章链接
redis配置文件介绍
redis启动验证及必备命令
redis字符串操作
redis之List操作
redis之Set操作
redis之Hash操作
redis之Zset操作
redis事务(伪事务)及watch监控
redis之发布订阅
redis持久化
redis主从复制

java操作redis源码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值