lpush key string 在 key 对应 list 的头部添加字符串元素,返回 1 表示成功,0 表示 key 存在且不是 list 类型。

    rpush key string 在 key 对应 list 的尾部添加字符串元素。

    llen key 返回 key 对应 list 的长度,如果 key 不存在返回 0,如果 key 对应类型不是 list返回错误。

    lrange key start end 返回指定区间内的元素,下标从 0 开始,负值表示从后面计算,-1 表示倒数第一个元素 ,key 不存在返回空列表。

    ltrim key start end 截取 list 指定区间内元素,成功返回 1,key 不存在返回错误。

    lset key index value 设置 list 中指定下标的元素值,成功返回 1,key 或者下标不存在返回错误。

    lrem key count value 从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配 value 的元素,返回删除的元素数量。count 为 0 时候删除全部。

    lpop key 从 list 的头部删除并返回删除元素。如果 key 对应 list 不存在或者是空返回 nil,如果 key 对应值不是 list 返回错误。

    rpop key 从 list 的尾部删除并返回删除元素。

    blpop key1 …… keyN timeout 从左到右扫描,返回对第一个非空 list 进行 lpop 操作并返回,比如blpop list1 list2 list3 0 ,如果 list 不存在 list2,list3 都是非空则对 list2 做lpop 并返回从 list2 中删除的元素。如果所有的 list 都是空或不存在,则会阻塞 timeout秒,timeout 为 0 表示一直阻塞。当阻塞时,如果有 client 对 key1…keyN 中的任意 key进行 push 操作,则第一在这个 key 上被阻塞的 client 会立即返回。如果超时发生,则返回nil。有点像 unix 的 select 或者 poll。

    brpop 同 blpop,一个是从头部删除一个是从尾部删除。


    添加命令:
    rpush james c b a //从右向左插入cba, 返回值3
    lrange james 0 -1 //从左到右获取列表所有元素 返回 c b a
    lpush key c b a //从左向右插入cba
    linsert james before b teacher //在b之前插入teacher, after为之后,使用lrange james 0 -1 查看:c teacher b a
    查找命令:
    lrange key start end //索引下标特点:从左到右为0到N-1
    lindex james -1 //返回最右末尾a,-2返回b
    llen james //返回当前列表长度
    lpop james //把最左边的第一个元素c删除
    rpop james //把最右边的元素a删除

    lrem key count value//删除指定元素
    如:lpush test b b b b b j x z //键test放入z x j b b b b b
    lrange test 0 -1 //查询结果为 z x j b b b b b
    lrem test 4 b //从左右开始删除b的元素,删除4个,
    若lrem test 8 b, 删除8个b, 但只有5个全部删除
    lrange test 0 -1 //删除后的结果为 b j x z
    lrem test 0 b //检索所有b全部删除 j x z

    lpush user b b b b b j x z //键user从左到右放入 z x j b b b b b
    ltrim user 1 3 //只保留从第2到第4的元素,其它全删
    lrange user 0 -1 //查询结果为 x j b, 其它已全被删掉

    lpush user01 z y x //键user01从左到右放入x y z
    lset user01 2 java // 把第3个元素z替换成java
    lrange user01 0 -1 //查询结果为 x y java

    lpush 在链表左边推进一个元素
    rpush 在链表右边推进一个元素
    linsert 在链表某个元素之前或之后插入一个元素 linsert mlist before “world” “hello “
    lset 设置 list 中指定下标的元素值(下标从 0 开始) lset mlist 0 “first”
    lrem 从 list 中删除 count 个相同的值,当 count > 0 时,从头到尾的顺序删除;当 count < 0 时,从尾到头的顺序删除 lrem mlist 1 “first”
    ltrim 保留指定 list 索引(下标)范围内的数据 ltrim mlist 1 -1
    lpop 在链表左边弹出一个元素,返回被弹出的值
    rpop 在链表右边弹出一个元素,返回被弹出值
    rpoplpush 在第一个链表右边弹出一个元素推进到第二个链表中 rpoplpush mlist mlistbak
    lindex 返回链表中 index 位置的元素
    llen 返回链表的长度