Redis命令操作之List

  1. LPUSH
    用法:LPUSH key value [value ...]
    功能:
        将一个或多个值 value 插入到列表 key 的表头。
        如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。
        如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。
        当 key 存在但不是列表类型时,返回一个错误。
        在Redis 2.4版本以前的 LPUSH 命令,都只接受单个 value 值。
    可用版本:>= 1.0.0
    返回值:
        执行 LPUSH 命令后,列表的长度。
  2. LPUSHX
    用法:LPUSHX key value
    功能:
        将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。
        和 LPUSH 命令相反,当 key 不存在时, LPUSHX 命令什么也不做。
    可用版本:>= 2.2.0
    返回值:
        LPUSHX 命令执行之后,表的长度。
  3. LINSERT
    用法:LINSERT key BEFORE|AFTER pivot value
    功能:
        将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。
        当 pivot 不存在于列表 key 时,不执行任何操作。
        当 key 不存在时, key 被视为空列表,不执行任何操作。
        如果 key 不是列表类型,返回一个错误。
    可用版本:>= 2.2.0
    返回值:
        如果命令执行成功,返回插入操作完成之后,列表的长度。
        如果没有找到 pivot ,返回 -1 。
        如果 key 不存在或为空列表,返回 0 。
  4. LSET
    用法:LSET key index value
    功能:
        将列表 key 下标为 index 的元素的值设置为 value 。
        当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。
        关于列表下标的更多信息,请参考 LINDEX 命令。
    可用版本:>= 1.0.0
    返回值:
        操作成功返回 ok ,否则返回错误信息。
  5. LINDEX
    用法:LINDEX key index
    功能:
        返回列表 key 中,下标为 index 的元素。
        下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
        你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
        如果 key 不是列表类型,返回一个错误。
    可用版本:>= 1.0.0
    返回值:
        列表中下标为 index 的元素。
        如果 index 参数的值不在列表的区间范围内(out of range),返回 nil 。
  6. LPOP
    用法:LPOP key
    功能:
        移除并返回列表 key 的头元素。
    可用版本:>= 1.0.0
    返回值:
        列表的头元素。
        当 key 不存在时,返回 nil 。
  7. LRANGE
    用法:LRANGE key start stop
    功能:
        返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
        下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
        你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
        注意LRANGE命令和编程语言区间函数的区别
            假如你有一个包含一百个元素的列表,对该列表执行 LRANGE list 0 10 ,结果是一个包含11个元素的列表,这表明 stop 下标也在 LRANGE 命令的取值范围之内(闭区间),这和某些语言的区间函数可能不一致,比如Ruby的 Range.new 、 Array#slice 和Python的 range() 函数。
        超出范围的下标
            超出范围的下标值不会引起错误。
            如果 start 下标比列表的最大下标 end ( LLEN list 减去 1 )还要大,那么 LRANGE 返回一个空列表。
        如果 stop 下标比 end 下标还要大,Redis将 stop 的值设置为 end 。
    可用版本:>= 1.0.0
    返回值:
        一个列表,包含指定区间内的元素。
  8. LLEN
    用法:LLEN key
    功能:
        返回列表 key 的长度。
        如果 key 不存在,则 key 被解释为一个空列表,返回 0 .
        如果 key 不是列表类型,返回一个错误。
    可用版本:>= 1.0.0
    返回值:
        列表 key 的长度。
  9. LREM
    用法:LREM key count value
    功能:
    根据参数 count 的值,移除列表中与参数 value 相等的元素。
    count 的值可以是以下几种:
        count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
        count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
        count = 0 : 移除表中所有与 value 相等的值。
    可用版本:>= 1.0.0
    返回值:
        被移除元素的数量。
        因为不存在的 key 被视作空表(empty list),所以当 key 不存在时, LREM 命令总是返回 0 。
  10. LTRIM
    用法:LTRIM key start stop
    功能:
        对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
        举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。
        下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
        你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
        当 key 不是列表类型时,返回一个错误。
        注意LTRIM命令和编程语言区间函数的区别
            假如你有一个包含一百个元素的列表 list ,对该列表执行 LTRIM list 0 10 ,结果是一个包含11个元素的列表,这表明 stop 下标也在 LTRIM 命令的取值范围之内(闭区间),这和某些语言的区间函数可能不一致,比如Ruby的 Range.new 、 Array#slice 和Python的 range() 函数。
        超出范围的下标
            超出范围的下标值不会引起错误。
            如果 start 下标比列表的最大下标 end ( LLEN list 减去 1 )还要大,或者 start > stop , LTRIM 返回一个空列表(因为 LTRIM 已经将整个列表清空)。
            如果 stop 下标比 end 下标还要大,Redis将 stop 的值设置为 end 。
    可用版本:>= 1.0.0
    返回值:
        命令执行成功时,返回 ok 。
  11. RPUSH
    用法:RPUSH key value [value ...]
    功能:
        将一个或多个值 value 插入到列表 key 的表尾(最右边)。
        如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。
        如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。
        当 key 存在但不是列表类型时,返回一个错误。
        在 Redis 2.4 版本以前的 RPUSH 命令,都只接受单个 value 值。
    可用版本:>= 1.0.0
    返回值:
        执行 RPUSH 操作后,表的长度。
  12. RPUSHX
    用法:RPUSHX key value
    功能:
        将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。
        和 RPUSH 命令相反,当 key 不存在时, RPUSHX 命令什么也不做。
    可用版本:>= 2.2.0
    返回值:
        RPUSHX 命令执行之后,表的长度。
  13. RPOP
    用法:RPOP key
    功能:
        移除并返回列表 key 的尾元素。
    可用版本:>= 1.0.0
    返回值:
        列表的尾元素。
        当 key 不存在时,返回 nil 。
  14. RPOPLPUSH
    用法:RPOPLPUSH source destination
    功能:
        命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作:
            将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。
            将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。
        举个例子,你有两个列表 source 和 destination , source 列表有元素 a, b, c , destination 列表有元素 x, y, z ,执行 RPOPLPUSH source destination 之后, source 列表包含元素 a, b , destination 列表包含元素 c, x, y, z ,并且元素 c 会被返回给客户端。
        如果 source 不存在,值 nil 被返回,并且不执行其他动作。
        如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。
    可用版本:>= 1.2.0
    返回值:
        被弹出的元素。

猜你喜欢

转载自blog.csdn.net/yangfan8805/article/details/81711172