zoukankan      html  css  js  c++  java
  • 列表类型(list)

    列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。

    1、向列表两端增加元素
    LPUSH key value [value...]
    RPUSH key value [value...]

    LPUSH命令用来向列表左边增加元素,返回值表示增加元素后列表的长度
    redis>LPUSH numbers 1

    LPUSH命令还支持同时增加多个元素
    redis>LPUSH numbers 2 3

    RPUSH命令用来向列表右边增加元素,返回值表示增加元素后列表的长度


    2、从列表两端弹出元素
    LPOP key
    RPOP key

    LPOP命令可以从列表左边弹出一个元素。RPOP命令可以从列表右边弹出一个元素。


    使用列表来模拟栈和队列的操作:
    如果想把列表当做栈,则搭配使用LPUSH和LPOP或RPUSH和RPOP,如果想当成队列,则搭配使用LPUSH和RPOP或RPUSH和LPOP

    3、获取列表中元素的个数
    LLEN key
    当键不存在时LLEN会返回0

    4、获得列表片段
    LRANGE key start stop
    LRANGE命令将返回索引从start到stop之间的所有元素(包含两端的元素)。Redis的列表起始索引为0。
    LRANGE命令也支持负索引,表示从右边开始计算序数,如"-1"表示最右边第一个元素,-2表示最右边第二个元素。

    LRANGE key 0 -1可以获取列表中的所有元素。另外一些特殊情况如下:
    (1)如果start的索引位置比stop的索引位置靠后,则会返回空列表
    (2)如果stop大于实际的索引范围,则会返回到列表最右边的元素

    5、删除列表中指定的值
    LREM key count value
    LREM命令会删除列表中前count个值为value的元素,返回值是实际删除的元素个数。

    根据count值的不同,LREM命令的执行方式会略有差异
    (1)当count>0时LREM命令会从列表左边开始删除前count个值为value的元素
    (2)当count<0时LREM命令会从列表右边开始删除前count个值为value的元素
    (3)当count=0时LREM命令会删除所有值为value的元素


    6、获得/设置指定索引的元素值
    LINDEX key index
    LSET key index value

    redis>LINDEX key 0

    如果index是负数则表示从右边开始计算的索引,左右边元素的索引是-1。

    LSET是另一个通过索引操作列表的命令,它会将索引为index的元素赋值为value。

    7、只保留列表指定片段
    LTRIM key start end
    LTRIM命令可以删除指定索引范围之外的所有元素,其指定列表范围的方法和LRANGE命令相同。

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

    9、将元素从一个列表转到另一个列表
    RPOPLPUSH source destination
    PPOPLPUSH命令会先从source列表类型键的右边弹出一个元素,然后将其加入到destination列表类型键的左边,并返回这个元素的值,整个过程是原子的。

  • 相关阅读:
    UVA 10305 Ordering Tasks(拓扑排序)
    UVA 1152 4 Values whose Sum is 0(中途相遇法)
    UVA 1103 Ancient Messages
    HDU 2141 Can you find it?
    POJ 2456 Aggressive cows(二分+贪心)
    Tallest Cow【模拟】
    Tallest Cow【模拟】
    激光炸弹【模拟】
    激光炸弹【模拟】
    激光炸弹【模拟】
  • 原文地址:https://www.cnblogs.com/ahao214/p/15562471.html
Copyright © 2011-2022 走看看