redis之List类型常用方法总结

格式:

存---LPUSH key value [value ...]
取--LRANGE key start stop
  1. lpush key value [value ...] 将一个或多个值插入到列表头部

    127.0.0.1:6379> lpush plf panlifu
    (integer) 1
    127.0.0.1:6379> lpush plf lt
    (integer) 2
    127.0.0.1:6379> lpush plf xs
    (integer) 3
    127.0.0.1:6379> lpush plf cd
    (integer) 4
    127.0.0.1:6379> lrange plf 0 1
    1) "cd"
    2) "xs"
    127.0.0.1:6379> lrange plf 0 3
    1) "cd"
    2) "xs"
    3) "lt"
    4) "panlifu"
  2. lrange key start stop 获取列表指定范围内的元素

    127.0.0.1:6379> lpush plf panlifu
    (integer) 1
    127.0.0.1:6379> lpush plf lt
    (integer) 2
    127.0.0.1:6379> lpush plf xs
    (integer) 3
    127.0.0.1:6379> lpush plf cd
    (integer) 4
    127.0.0.1:6379> lrange plf 0 1
    1) "cd"
    2) "xs"
    127.0.0.1:6379> lrange plf 0 3
    1) "cd"
    2) "xs"
    3) "lt"
    4) "panlifu"
  3. blpop key [key ...] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

    127.0.0.1:6379> blpop plf  timeout 1
    1) "plf"
    2) "cd"
    127.0.0.1:6379> lrange plf 0 4
    1) "xs"
    2) "lt"
    3) "panlifu"
  4. brpop key [key ...] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

    127.0.0.1:6379> lrange plf 0 4
    1) "xs"
    2) "lt"
    3) "panlifu"
    127.0.0.1:6379> brpop plf timeout 1
    1) "plf"
    2) "panlifu"
    127.0.0.1:6379> lrange plf 0 4
    1) "xs"
    2) "lt"
  5. brpoplpush source destination timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。?

    127.0.0.1:6379> brpoplpush plf lt timeout 10
    (error) ERR wrong number of arguments for 'brpoplpush' command
    127.0.0.1:6379>
  6. lindex key index 通过索引获取列表中的元素

    127.0.0.1:6379> lrange plf 0 3
    1) "xs"
    2) "lt"
    127.0.0.1:6379> lindex plf 1
    "lt"
    127.0.0.1:6379> lindex plf 0
    "xs"
    127.0.0.1:6379>
  7. linsert key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素


    127.0.0.1:6379> lrange plf 0 3
    1) "xs"
    2) "lt"
    127.0.0.1:6379> linsert plf after lt hehe
    (integer) 3
    127.0.0.1:6379> lrange plf 0 3
    1) "xs"
    2) "lt"
    3) "hehe"
    127.0.0.1:6379> linsert plf before lt hehe
    (integer) 4
    127.0.0.1:6379> lrange plf 0 3
    1) "xs"
    2) "hehe"
    3) "lt"
    4) "hehe"
  8. llen key 获取列表长度

    127.0.0.1:6379> lrange plf 0 3
    1) "xs"
    2) "hehe"
    3) "lt"
    4) "hehe"
    127.0.0.1:6379> llen plf
    (integer) 4
  9. lpop key 移出并获取列表的第一个元素

    127.0.0.1:6379> lrange plf 0 3
    1) "xs"
    2) "hehe"
    3) "lt"
    4) "hehe"
    127.0.0.1:6379> llen plf
    (integer) 4
    127.0.0.1:6379> lpop plf
    "xs"
    127.0.0.1:6379> lrange plf 0 3
    1) "hehe"
    2) "lt"
    3) "hehe"
  10. lpushx key value 将一个值插入到已存在的列表头部

```shell
127.0.0.1:6379> lpushx hehe hello
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> lpushx plf hello
(integer) 4
127.0.0.1:6379> lrange plf 0 5
1) "hello"
2) "hehe"
3) "lt"
4) "hehe"
```
  1. lrem key count value 移除列表元素,count次数

    127.0.0.1:6379> lrange plf 0 5
    1) "hello"
    2) "hehe"
    3) "lt"
    4) "hehe"
    127.0.0.1:6379> lrem plf 2 hehe
    (integer) 2
    127.0.0.1:6379> lrange plf 0 5
    1) "hello"
    2) "lt"
  2. lset key index value 通过索引设置列表元素的值

    127.0.0.1:6379> lrange plf 0 5
    1) "hello"
    2) "lt"
    127.0.0.1:6379> lset plf 0 gunkai
    OK
    127.0.0.1:6379> lrange plf 0 5
    1) "gunkai"
    2) "lt"
  3. ltrim key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

    127.0.0.1:6379> lrange plf 0 10
    1) "gunkai"
    2) "lt"
    3) "1"
    4) "2"
    5) "3"
    6) "4"
    7) "5"
    8) "6"
    9) "7"
    10) "8"
    127.0.0.1:6379> ltrim plf 0 3
    OK
    127.0.0.1:6379> lrange plf 0 10
    1) "gunkai"
    2) "lt"
    3) "1"
    4) "2"
  4. rpop key 移除列表的最后一个元素,返回值为移除的元素。

    127.0.0.1:6379> lrange plf 0 10
    1) "gunkai"
    2) "lt"
    3) "1"
    4) "2"
    127.0.0.1:6379> rpop plf
    "2"
    127.0.0.1:6379> lrange plf 0 10
    1) "gunkai"
    2) "lt"
    3) "1"
  5. rpoplpush source destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回

    127.0.0.1:6379> lrange plf 0 10
    1) "gunkai"
    2) "lt"
    3) "1"
    127.0.0.1:6379> rpoplpush plf lt
    "1"
    127.0.0.1:6379> lrange plf 0 10
    1) "gunkai"
    2) "lt"
    127.0.0.1:6379> lrange lt 0 10
    1) "1"
  6. rpush key value [value ...] 在列表中添加一个或多个值

    127.0.0.1:6379> lrange plf 0 5
    1) "gunkai"
    2) "lt"
    127.0.0.1:6379> rpush plf 1 2 3 4 5 6 7 8
    (integer) 10
    127.0.0.1:6379> lrange plf 0 10
    1) "gunkai"
    2) "lt"
    3) "1"
    4) "2"
    5) "3"
    6) "4"
    7) "5"
    8) "6"
    9) "7"
    10) "8"
  7. rpushx key value 为已存在的列表添加值

    127.0.0.1:6379> rpushx test_key 1
    (integer) 0
    127.0.0.1:6379> lrange test_key 0 1
    (empty list or set)

总结:以x结尾都是判断 key是否存在,不存在就不能设置,存在才能设置。以r开头表示可以同时添加多个值

redis之List类型常用方法总结的更多相关文章

  1. redis之Hash类型常用方法总结

    redis之Hash类型常用方法总结 格式: 存--HMGET key field [field ...] 取--HMGET key field [field ...] M:表示能取多个值,many ...

  2. redis之Set(有序)类型常用方法总结

    redis之Set(有序)类型常用方法总结 存--ZADD key [NX|XX] [CH] [INCR] score member [score member ...] XX: 仅仅更新存在的成员, ...

  3. redis之Set(无序)类型常用方法总结

    redis之Set(无序)类型常用方法总结 存--sadd key member [member ...] 取--SMEMBERS key sadd key member [member ...] 向 ...

  4. 深入浅出Redis04使用Redis数据库(lists类型)

    一  lists类型及操作 List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字. Redis的list类型其实就是一个每个子元素都是sring类 ...

  5. 【redis】03list类型

    list类型 redis的list类型是一个链表结构,他的主要功能是push.pop.获取一个范围的所有值等等一些操作, 咱们push什么意思,push是不是相当于咱们php里面的array_push ...

  6. redis的lists类型

    List是一个链表结构 , 主要功能是push . pop .获取一个范围的所有值等等 , 操作中key理解为链表的名字 . redis 的 list类型其实就是一个每个子元素都是string类型的双 ...

  7. redis的set类型

    1.简单描述 redis的set类型是string类型数值的无序集合.set元素最大可以包含2的32次方减1个元素.由于set类型是通过hash table实现(旧版本是这样,新版本不确定是不是改用了 ...

  8. redis的list类型

    1.简单介绍 redis的list类型其实就是一个每个元素都是string类型的双向链表.所以lpush.rpush.lpop和rpop命令的时间复杂度是O(1),list会记录链表的长度,所以lle ...

  9. redis数据类型-字符串类型

    Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...

随机推荐

  1. AcWing - 156 矩阵(二维哈希)

    题目链接:矩阵 题意:给定一个$m$行$n$列的$01$矩阵$($只包含数字$0$或$1$的矩阵$)$,再执行$q$次询问,每次询问给出一个$a$行$b$列的$01$矩阵,求该矩阵是否在原矩阵中出现过 ...

  2. ZOJ - 3203 Light Bulb(三分)

    题意:灯离地面的高度为$H$,人的身高为$h$,灯离墙的距离为$D$,人站在不同位置,影子的长度不一样,求出影子的最长长度. 思路:设人离灯的距离为$x$,当人走到距离灯长度为$L$时,人在墙上的影子 ...

  3. 【PAT甲级】1076 Forwards on Weibo (30 分)

    题意: 输入两个正整数N和L(N<=1000,L<=6),接着输入N行数据每行包括它关注人数(<=100)和关注的人的序号,接着输入一行包含一个正整数K和K个序号.输出每次询问的人发 ...

  4. CSS-禁止文本被选中

    pc端: .not-select{ -moz-user-select:none; /*火狐*/ -webkit-user-select:none; /*webkit浏览器*/ -ms-user-sel ...

  5. Centos7 将应用添加快捷方式到applications 中以pycham为例[ubuntu]适用

    安装版本pycharm-2019.1.3 安装路径:/opt/pycharm-2019.1.3/ vim /usr/share/applications/pycharm.desktop #!/usr/ ...

  6. VBA 学习笔记 - 消息框

    学习资料:https://www.yiibai.com/vba/vba_macro_comments.html 注释 单引号或 REM 开头 丸子:多行注释咋办? 消息框(MsgBox) 函数功能:显 ...

  7. 「题解」「JOISC 2014 Day1」历史研究

    目录 题目 考场思考 思路分析及标程 题目 点这里 考场思考 大概是标准的莫队吧,离散之后来一个线段树加莫队就可以了. 时间复杂度 \(\mathcal O(n\sqrt n\log n)\) . 然 ...

  8. Robot Framework 使用【2】-- MAC系统搭建Robot Framework

    前言 上一篇中讲述了如何在windows环境下搭建Robot Framework,发完帖后有几位小伙伴就私下留言有没有MAC版本的搭建过程,由于笔者MAC上是安装了旧版本的,经过笔者本周零碎时间的尝试 ...

  9. 解决centos7命令无法补全

    背景 偶然发现本地虚拟机centos 7.7配置firewalld-cmd命令行无法补全,手敲命令太多,着实麻烦 解决方案 安装linux命令行补全工具,还能够补全命令参数 yum install b ...

  10. linux动态监控dstat&&glances&&psutil&&bottle

    安装dstat yum install dstat 安装glances yum install python-devel pip install glances 如果我们安装了 Bottle 这个 w ...