《Redis使用手册之列表》

《Redis使用手册之列表》

目录

LPUSH:将元素推入列表左端

  • 127.0.0.1:6379> lpush list aa bb cc

    (integer) 3

    127.0.0.1:6379> rpush list dd ee ff

    (integer) 6

    lpush :将元素推入列表左端 lpush list aa bb cc 可一次推入多个元素

    LPUSH:将元素推入列表左端

LPUSHX、RPUSHX:只对已存在的列表执行推入操作

  • 127.0.0.1:6379> lpushx list1 aa

    (integer) 0

    127.0.0.1:6379> rpushx list1 aa

    (integer) 0

    LPUSHX命令只会在列表已经存在的情况下,将元素推入列表左端 RPUSHX命令只会在列表已经存在的情况下,将元素推入列表右端。

    LPUSHX命令只会在列表已经存在的情况下,将元素推入列表左端。●RPUSHX命令只会在列表已经存在的情况下,将元素推入列表右端。

LPOP:弹出列表最左端的元素

  • 127.0.0.1:6379> lpop list

    "cc"

    127.0.0.1:6379> lpop list

    "bb"

    127.0.0.1:6379> lpop list

    "aa"

    LPOP:弹出列表最左端的元素。 后进先出

    LPOP:弹出列表最左端的元素

RPOP:弹出列表最右端的元素

  • 127.0.0.1:6379> rpop list

    "ff"

    RPOP:弹出列表最右端的元素

    RPOP:弹出列表最右端的元素

RPOPLPUSH:将右端弹出的元素推入左端

  • 127.0.0.1:6379> rpush list1 a b c

    (integer) 3

    127.0.0.1:6379> rpush list2 d e f

    (integer) 3

    127.0.0.1:6379> rpoplpush list1 list2

    "c"

    127.0.0.1:6379> rpoplpush list1 list2

    "b"

    127.0.0.1:6379> rpoplpush list1 list2

    "a"

    127.0.0.1:6379> rpoplpush list1 list1

    (nil)

    127.0.0.1:6379> rpoplpush list2 list3

    "f"

    列表 list1中的元素已经全部被推至list2中。

    RPOPLPUSH:将右端弹出的元素推入左端

    RPOPLPUSH source target 源列表和目标列表相同 在这种情况下,RPOPLPUSH命令的效果相当于将列表最右端的元素变成列表最左端的元素。

    处理空列表

    如果用户传给RPOPLPUSH命令的源列表并不存在,那么RPOPLPUSH命令将放弃执行弹出和推入操作,只返回一个空值表示命令执行失败。

    如果源列表非空,但是目标列表为空,RPOPLPUSH命令将正常执行弹出操作和推入操作

    RPOPLPUSH:将右端弹出的元素推入左端

LLEN:获取列表的长度

  • 127.0.0.1:6379> llen list1

    (integer) 0

    127.0.0.1:6379> llen list2

    (integer) 5

    LLEN:获取列表的长度

    LLEN:获取列表的长度

LINDEX:获取指定索引上的元素

  • 127.0.0.1:6379> lindex list2 0

    "a"

    127.0.0.1:6379> lindex list2 2

    "c"

    127.0.0.1:6379> lindex list2 1

    "b"

    127.0.0.1:6379> lindex list2 -1

    "e"

    127.0.0.1:6379> lindex list2 -2

    "d"

    LINDEX:获取指定索引上的元素。 正数索引从列表的左端开始计算,一次向右端递增:最左端元素的索引为0 负数索引从列表的右端开始计算,一次向左端递减:最右端元素的索引为-1.

    LINDEX:获取指定索引上的元素

LRANGE:获取指定索引范围上的元素

127.0.0.1:6379> lrange list2 0 -1

  1. "a"
  2. "b"
  3. "c"
  4. "d"
  5. "e"

LRANGE:获取指定索引范围上的元素 LRANGE list start end

LRANGE:获取指定索引范围上的元素

LSET:为指定索引设置新元素

  • 127.0.0.1:6379> lset list2 -1 f

    OK

    127.0.0.1:6379> lrange list2 0 -1

    1. "a"
    2. "b"
    3. "c"
    4. "d"
    5. "f"

    LSET:为指定索引设置新元素 LSET list index new_element

    LSET:为指定索引设置新元素

LINSERT:将元素插入列表

  • 127.0.0.1:6379> linsert list2 after f g

    (integer) 6

    127.0.0.1:6379> lrange list2 0 -1

    1. "a"
    2. "b"
    3. "c"
    4. "d"
    5. "f"
    6. "g"

    LINSERT:将元素插入列表 LINSERT list BEFORE|AFTER target_element new_element

    LINSERT:将元素插入列表

4.12 LTRIM:修剪列表

  • 127.0.0.1:6379> ltrim list2 0 4

    OK

    127.0.0.1:6379> lrange list2 0 -1

    1. "a"
    2. "b"
    3. "c"
    4. "d"
    5. "f"

    LTRIM:修建列表 LTRIM命令接受一个列表和一个索引范围为参数,并移除列表中位于索引范围之外的所有元素,只保留给定范围之内的元素。 LTRIM list start end 与LRANGE命令一样,LTRIM命令不仅可以处理正数索引,还可以处理负数索引。

    LTRIM:修剪列表LTRIM命令接受一个列表和一个索引范围作为参数,并移除列表中位于给定索引范围之外的所有元素,只保留给定范围之内的元素

LREM:从列表中移除指定元素

  • 127.0.0.1:6379> rpush list5 a b b a c c a

    (integer) 7

    127.0.0.1:6379> rpush list6 a b b a c c a

    (integer) 7

    127.0.0.1:6379> rpush list7 a b b a c c a

    (integer) 7

    127.0.0.1:6379> lrem list5 0 a

    (integer) 3

    127.0.0.1:6379> lrange list5 0 -1

    1. "b"
    2. "b"
    3. "c"
    4. "c"
      127.0.0.1:6379> lrem list6 1 a
      (integer) 1
      127.0.0.1:6379> lrange list6 0 -1
    5. "b"
    6. "b"
    7. "a"
    8. "c"
    9. "c"
    10. "a"
      127.0.0.1:6379> lrem list7 -1 a
      (integer) 1

    LREM:从列表中移除指定元素 LREM list count element count参数的值决定了LREM命令移除元素的方式:

    如果count参数的值等于0,那么LREM命令将移除列表中包含的所有指定元素。

    如果count参数的值大于0,那么LREM命令将从列表的左端开始向右进行检查,并移除最先发现的count个指定元素。

    如果count参数的值小于0,那么LREM命令将从列表的右端开始向左进行检查,并移除最先发现的abs(count)个指定元素。abs即count的绝对值。

    LREM:从列表中移除指定元素

BLPOP:阻塞式左端弹出操作

  • 127.0.0.1:6379> blpop list2 5

    1. "list2"
    2. "a"
      127.0.0.1:6379> blpop list2 5 5
    3. "list2"
    4. "b"
      127.0.0.1:6379> blpop list2 50
    5. "list2"
    6. "c"

BLPOP:阻塞式左端弹出操作 BLPOP命令式带有阻塞的左端弹出操作,它接受任意多个列表以及一个妙计精度的超时时限作为参数: BLPOP list [list ...] timeout

BLPOP:阻塞式左端弹出操作BLPOP命令是带有阻塞功能的左端弹出操作,它接受任意多个列表以及一个秒级精度的超时时限作为参数:

BRPOP:阻塞式右端弹出操作

  • 127.0.0.1:6379> brpop list2 30 30

    1. "list2"
    2. "f"

    BRPOP:阻塞式右端弹出操作 BRPOP命令式带有阻塞功能的右端弹出操作,除了弹出的方向不同之外,其他方面都和BLPOP命令一样。

    BRPOP:阻塞式右端弹出操作BRPOP命令是带有阻塞功能的右端弹出操作,除了弹出的方向不同之外,其他方面都和BLPOP命令一样:

BRPOPLPUSH:阻塞式弹出并推入操作

  • BRPOPLPUSH:阻塞式弹出并推入操作 BRPOPLPUSH命令式RPOPLPUSH命令的阻塞版本,BRPOPPUSH命令接受一个源列表、一个目标列表以及一个妙级精度的超时时限作为参数: BRPOPLPUSH source target timeout

BRPOPLPUSH:阻塞式弹出并推入操作BRPOPLPUSH命令是RPOPLPUSH命令的阻塞版本,BRPOPLPUSH命令接受一个源列表、一个目标列表以及一个秒级精度的超时时限作为参数:

相关推荐
snoopyfly~15 分钟前
Ubuntu 24.04 安装配置 Redis 7.0 开机自启
linux·redis·ubuntu
vivo互联网技术2 小时前
号码生成系统的创新实践:游戏周周乐幸运码设计
redis·后端·架构
都叫我大帅哥2 小时前
Redis中zset内存变形记
java·redis
大只鹅2 小时前
两级缓存 Caffeine + Redis 架构:原理、实现与实践
redis·缓存·架构
都叫我大帅哥2 小时前
Redis的ZSet:从“青铜”到“王者”的排序神器
java·redis
小小霸王龙!3 小时前
互联网大厂Java面试实录:Spring Boot与微服务在电商场景中的应用
java·spring boot·redis·微服务·电商
都叫我大帅哥3 小时前
Redis BitMap 深度解剖:比特世界的精密引擎
redis
爱上语文4 小时前
Redis基础(4):Set类型和SortedSet类型
java·数据库·redis·后端
软件2058 小时前
【redis使用场景——缓存——数据淘汰策略】
数据库·redis·缓存
加勒比海涛9 小时前
Spring Cloud Gateway 实战:从网关搭建到过滤器与跨域解决方案
数据库·redis·缓存