《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命令接受一个源列表、一个目标列表以及一个秒级精度的超时时限作为参数:

相关推荐
努力努力再努力wz14 分钟前
【c++深入系列】:万字详解模版(下)
java·c++·redis
2301_7930868727 分钟前
Redis 04 Reactor
数据库·redis·缓存
AAA修煤气灶刘哥5 小时前
搞定 Redis 不难:从安装到实战的保姆级教程
java·redis·后端
青鱼入云5 小时前
redis怎么做rehash的
redis·缓存
考虑考虑7 小时前
Redis事务
redis·后端
陈天cjq14 小时前
Redis 实用型限流与延时队列:从 Lua 固定/滑动窗口到 Streams 消费组(含脚本与压测)
redis·junit·lua
Warren9814 小时前
Lua 脚本在 Redis 中的应用
java·前端·网络·vue.js·redis·junit·lua
xiao-xiang14 小时前
redis-保姆级配置详解
数据库·redis
xiao-xiang20 小时前
redis-sentinel基础概念及部署
数据库·redis·sentinel
云间月131420 小时前
飞算JavaAI:从智能调度到出行服务的全链路技术升级
java·redis·飞算javaai炫技赛