Redis学习笔记——数据类型之列表类型

编程

  1. 获取列表中元素的个数

LLEN key

  • 当键不存在的时候返回 0。

  1. 获得列表片段

LRANGE key start stop

  • LRANGE 命令将返回索引从 start 到 stop 之间的所有元素(包含两端元素)。
  • LRANGE 命令指示读取数据不会对列表中的数据进行操作。
  • LRANGE 命令也支持负索引。
  • 如果 start 的索引位置比 stop 的索引位置靠后,则会返回空列表。
  • 如果 stop 大于实际的索引范围,则会返回到列表最右边的元素。

  1. 删除列表中指定的值

LREM key count value

  • LREM 命令会删除列表中前 count 个值为 value 的元素,返回值是实际删除的元素个数。根据 count 值的不同,LREM 命令的执行方式会略有差异:

  • 当 count > 0 时 LREM 命令会从列表左边开始删除前 count 个值为 value 的元素。
  • 当 count < 0 时 LREM 命令会从列表右边开始删除前 count 个值为 value 的元素。
  • 当 count = 0 时 LREM 命令会删除所有值为 value 的元素。

  1. 获得/设置指定索引的元素的值

LINDEX key index

LSET key index value

  • LINDEX 命令用来返回指定索引的元素,索引从 0 开始。
  • 如果 index 是负数则表示从右边开始计算的索引,最右边元素的索引是 -1。
  • LSET 会将索引为 index 的元素赋值为 value。

  1. 只保留列表指定片段

LTRIM key start end

  • LTRIM 命令可以删除指定索引范围之外的所有元素。
  • LTRIM 命令指定范围包含两侧元素。

  1. 向列表中插入元素

LINSERT key BEFORE|AFTER pivot value

  • LINSERT 命令首先会在列表中从左到右查找值为 pivot 的元素,然后根据第二个参数是 BEFORE 还是 AFTER 来决定将 value 插入到该元素的前面还是后面。

  1. 将元素从一个列表转移到另一个列表

RPOPLPUSH source destination

执行过程

  1. 执行 RPOP 命令
  2. 执行 LPUSH 命令。

  1. RPOPLPUSH 命令会先从 source 列表类型建的右边弹出一个元素,然后将其加入到 destination 列表类型键的左边,并返回这个元素的值
  2. RPOPLPUSH 命令的操作时原子的

当把列表类型作为队列使用时,RPOPLPUSH命令可以很直观地在多个队列中传递数据。当source和destination相同时,RPOPLPUSH命令会不断地将队尾的元素移到队首,借助这个特性我们可以实现一个网站监控系统:使用一个队列存储需要监控的网址,然后监控程序不断地使用RPOPLPUSH命令循环取出一个网址来测试可用性。这里使用RPOPLPUSH命令的好处在于在程序执行过程中仍然可以不断地向网址列表中加入新网址,而且整个系统容易扩展,允许多个客户端同时处理队列。

以上是 Redis学习笔记——数据类型之列表类型 的全部内容, 来源链接: utcz.com/z/513478.html

回到顶部