zoukankan      html  css  js  c++  java
  • Redis 笔记(三)—— LIST 常用命令

    常用命令

    命令用例和描述
    RPUSH RPUSH key value [value ...] —— 将一个或多个值推入列表的右端
    LPUSH LPUSH key value [value ...] —— 将一个或多个值推入列表的左端
    RPOP RPOP key —— 移除并返回列表最右端的元素
    LPOP LPOP key —— 移除并返回列表最左端的元素
    LINDEX LINDEX key offset —— 返回列表中偏移量为 offset 的元素
    LRANGE LRANGE key start end —— 返回列表从 start 到 end 偏移量范围内的元素(包含 start, end)
    LTRIM LTRIM key start end —— 对列表进行修剪,只保留从 start 到 end 的元素(包含 start, end)

    例子 :

    127.0.0.1:6379> rpush list-key last
    (integer) 1
    127.0.0.1:6379> lpush list-key first
    (integer) 2
    127.0.0.1:6379> rpush list-key "new last"
    (integer) 3
    127.0.0.1:6379> lrange list-key 0 -1
    1) "first"
    2) "last"
    3) "new last"
    127.0.0.1:6379> lpop list-key
    "first"
    127.0.0.1:6379> lpop list-key
    "last"
    127.0.0.1:6379> lrange list-key 0 -1
    1) "new last"
    127.0.0.1:6379> rpush list-key a b c
    (integer) 4
    127.0.0.1:6379> lrange list-key 0 -1
    1) "new last"
    2) "a"
    3) "b"
    4) "c"
    127.0.0.1:6379> ltrim list-key 2 -1
    OK
    127.0.0.1:6379> lrange list-key 0 -1
    1) "b"
    2) "c"
     

    阻塞式的列表弹出命令以及在列表之间移动元素的命令

    命令用例和描述
    BLPOP BLPOP key [key ...] timeout —— 从第一个非空列表中弹出最左端的元素,或者在 timeout 秒之内阻塞并等待可弹出的元素出现
    BRPOP BRPOP key [key ...] timeout —— 基本同 BLPOP,只是是从最右端弹出
    RPOPLPUSH RPOPLPUSH source-key dest-key —— 从 source-key 列表中弹出最右端元素插入 dest-key 最左端,并返回此元素
    BRPOPLPUSH BRPOPLPUSH source-key dest-key timeout —— 从 source-key 列表弹出最右端的元素,插入到 dest-key 的最左端,并返回此元素,如果 source-key 为空,那么在 timeout 秒之内阻塞并等待可弹出的元素出现
    例子:
    127.0.0.1:6379> rpush list item1
    (integer) 1
    127.0.0.1:6379> rpush list item2
    (integer) 2
    127.0.0.1:6379> rpush list2 item3
    (integer) 1
    127.0.0.1:6379> brpoplpush list2 list 1
    "item3"
    127.0.0.1:6379> brpoplpush list2 list 1
    (nil)
    (1.01s)
    127.0.0.1:6379> lrange list 0 -1
    1) "item3"
    2) "item1"
    3) "item2"
    127.0.0.1:6379> lrange list2 0 -1
    (empty list or set)
    127.0.0.1:6379> brpoplpush list list2 1
    "item2"
    # BLPOP 会从左到右检查列表,并对最先遇到的非空列表执行弹出操作
    127.0.0.1:6379> blpop list list2 1
    1) "list"  # 弹出元素所属的列表
    2) "item3"  # 弹出的元素
    127.0.0.1:6379> blpop list list2 1
    1) "list"
    2) "item1"
    127.0.0.1:6379> blpop list list2 1
    1) "list2"
    2) "item2"
    127.0.0.1:6379> blpop list list2 1
    (nil) # 结果
    (1.04s) # 等待时间
     
  • 相关阅读:
    RestTemplate proxy 设置方式
    一道关于主键,闭包的软考题------关系代数复习-码,范式,闭包求解
    MyBatis的XML中使用内部类的方式
    MyBatis SpringBoot 杂记
    服务器安装笔记
    UML符号
    npm 设置代理
    国外一家代码网站
    设计模式复习
    docker 列出每个容器的IP
  • 原文地址:https://www.cnblogs.com/zawier/p/8528071.html
Copyright © 2011-2022 走看看