• Redis高可用系列——List类型


    List

    添加

    语法

    从左侧添加:LPUSH key value [value ...]
    从右面添加:RPUSH key value [value ...]

    示例

    # 从左侧添加
    127.0.0.1:6379> lpush list 1 1 3 5 7
    (integer) 5
    # 从右侧添加
    127.0.0.1:6379> rpush list 2 2 4 6 8
    (integer) 10
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    获取列表中某一片段

    获取列表中的某一片段。将返回startstop之间的所有元素(包含两端的元素),索引从0开始。索引可以是负数,如:“-1”代表最后边的一个元素。

    语法:LRANGE key start stop

    示例

    # 部分片段
    127.0.0.1:6379> lrange list 0 4
    1) "7"
    2) "5"
    3) "3"
    4) "1"
    5) "1"
    # 全部片段
    127.0.0.1:6379> lrange list 0 -1
     1) "7"
     2) "5"
     3) "3"
     4) "1"
     5) "1"
     6) "2"
     7) "2"
     8) "4"
     9) "6"
    10) "8"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    弹出(删除)

    从列表左/右边弹出一个元素,会分两步完成——先将列表左/右边的元素从列表中移除,再返回被移除的元素值

    语法:

    LPOP key

    RPOP key

    示例

    # 从左侧弹出
    127.0.0.1:6379> lpop list 1
    1) "7"
    # 从右侧弹出
    127.0.0.1:6379> rpop list 2
    1) "8"
    2) "6"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    获取列表中元素的个数

    语法:llen key

    示例

    127.0.0.1:6379> llen list
    (integer) 7
    
    
    • 1
    • 2
    • 3

    删除指定个数的值

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

    • 当count>0时, LREM会从列表左边开始删除;
    • 当count<0时, LREM会从列表后边开始删除;
    • 当count=0时, LREM删除所有值为value的元素。

    语法:LREM key count value

    示例

    127.0.0.1:6379> lrange list 0 -1
    1) "5"
    2) "3"
    3) "1"
    4) "1"
    5) "2"
    6) "2"
    7) "4"
    # 从左侧删除"1",个数为10个
    127.0.0.1:6379> lrem list 10 1
    (integer) 2
    # 从右侧删除"2",个数为1个
    127.0.0.1:6379> lrem list -1 2
    (integer) 1
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    获得指定索引的元素值

    语法:LINDEX key index

    示例

    127.0.0.1:6379> lrange list 0 -1
    1) "5"
    2) "3"
    3) "2"
    4) "4"
    127.0.0.1:6379> lindex list 0
    "5"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    设置指定索引的元素值

    语法:LSET key index value

    示例

    127.0.0.1:6379> lrange list 0 -1
    1) "5"
    2) "3"
    3) "2"
    4) "4"
    127.0.0.1:6379> lset list 0 10
    OK
    127.0.0.1:6379> lrange list 0 -1
    1) "10"
    2) "3"
    3) "2"
    4) "4"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    保留列表指定片段

    指定范围和LRANGE一致

    语法:LTRIM key start stop

    示例

    127.0.0.1:6379> lrange list 0 -1
    1) "10"
    2) "3"
    3) "2"
    4) "4"
    127.0.0.1:6379> ltrim list 0 2
    OK
    127.0.0.1:6379> lrange list 0 -1
    1) "10"
    2) "3"
    3) "2"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    向列表中插入元素

    命令说明

    1. 在列表中从左至右查找,值为pivot的元素
    2. 判断BEFORE还是AFTER
    3. 在pivot的前面或者后面插入value
    4. 返回list个数

    语法: LINSERT key BEFORE|AFTER pivot value

    示例

    127.0.0.1:6379> lrange list 0 -1
    1) "10"
    2) "3"
    3) "2"
    127.0.0.1:6379> linsert list before 3 456
    (integer) 4
    127.0.0.1:6379> lrange list 0 -1
    1) "10"
    2) "456"
    3) "3"
    4) "2"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    将元素从列表A转移到列表B

    命令说明

    1. 从【列表A】右侧弹出一个元素
    2. 在【列表B】左侧添加此元素
    3. 返回此元素的值

    语法:RPOPLPUSH source destination

    示例

    127.0.0.1:6379> lrange list 0 -1
    1) "10"
    2) "456"
    3) "3"
    4) "2"
    127.0.0.1:6379> rpoplpush list newlist
    "2" 
    127.0.0.1:6379> lrange newlist 0 -1
    1) "2"
    127.0.0.1:6379> lrange list 0 -1
    1) "10"
    2) "456"
    3) "3"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    Linux系统命令——用户及用户组管理命令
    MAC版Gradle构建Spring5.X源码阅读环境
    elementui this.$message消息提示被弹框遮住
    LT6211UX是用于VR和Display应用的HDMI2.0到LVDS转换器
    【JavaScript手撕代码】new
    通过Linux命令监控CPU案例
    彻底理解Java并发:synchronized关键字
    UTS 在安卓系统上的开发应用
    10. 同步控制指令
    个人博客系列-后端项目-用户验证(5)
  • 原文地址:https://blog.csdn.net/Star_Inori/article/details/126092367