第2章 Redis的Lists类型

第2章 Lists

List的数据结构类似于双端链表。Redis中L表示链表的头,R表示链表尾部。

存放
头插法
  • LPUSH key element [element …]

    向指定的链表插入多个值。L表示插入的方向是头插法。如果key不存在,创建空链表再插入;存在则追加。

    返回值:链表长度

    example:LPUSH mykey a b c

    链表大致结构:c - > b -> a

    Long size = resource.lpush(key, "a", "b", "c");
    
  • LPUSHX key elment [element …]

    和LPUSH功能一样。但是必须是要key存在,才插入值。

  • LINSERT key BEFORE | AFTER pivot elment

    在列表中指定值的前或后插入值。如果key不存在,不做任何操作

    返回值:插入成功,返回列表的长度。

    ​ 返回-1,指定的值(pivot)没有在列表中找到

    Long size = resource.linsert(key, ListPosition.BEFORE, "c", "d");
    
  • LSET key index element

    向列表中指定的index放入值。这个列表必须是存在的

    返回值:字符串OK

    String rs = resource.lset(key, 3, "a");
    
尾插法
  • RPUSH

    功能和LRPUSH一样。只是插入元素方向不一样,向尾部插入。

    example:LPUSH mykey a b c

    链表大致结构:a -> b -> c

  • RPUSHX

    和RPUSHX功能一样。只是插入元素方向不一样,向尾部插入。

移除
  • LPOP key [count]

    移除列表头部元素。count表示要移除元素的数量

    返回值:列表中的元素。

    ​ key不存在返回,nil

    String element = resource.lpop(key);
    
  • LREM key count element

    移除元素。

    count > 0:从头到尾,开始移除和element想匹配的元素,直到移除元素个数为count

    count < 0:从尾到头,开始移除和element想匹配的元素,直到移除元素个数为count

    count = 0:移除和element想匹配的所有元素

    返回值:移除元素的个数

    example:假设有列表,[“a”, “a”, “b”, “b”, “c”, “d”, “c” ]

    ​ 1)count = 1,element = c LREM key 1 c

    ​ 结果:[“a”, “a”, “b”, “b”, “d”, “c”]

    ​ 2)count = -1,element = c LREM key -1 c

    ​ 结果:[“a”, “a”, “b”, “b”, “c”, “d” ]

    ​ 3)count = 0,element = c LREM key 0 c

    ​ 结果:[“a”, “a”, “b”, “b”, “d”]

    Long removeNum = resource.lrem(key, 3, "c");
    
  • LTRIM key start stop

    修剪已存在的链表,链表将包含在 [start, stop] 范围内的值。

    注意:如果start大于链表的长度或大于stop,相当于清空链表。

    返回值:字符串OK

    String rs = resource.ltrim(key, 2, -2);
    
  • RPOP

    和LPOP功能一样,从尾部移除。

遍历
  • LRANGE key start stop

    返回指定范围【start, stop】 内的值。注意:这里是包含值stop的

    返回值:链表中的值

    List<String> values = resource.lrange(key, 0, -1);
    
  • LINDEX key index

    返回链表中指定index的值。

    返回值:返回指定index下的值。

    ​ index超出链表长度,返回nil

    String element = resource.lindex(key, 4);
    
  • LLEN key

    获取链表长度

    返回值:key存在,返回链表长度

    ​ key不存在,返回0

    Long length = resource.llen(key);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值