zoukankan      html  css  js  c++  java
  • Yii redis list列表的使用

    redis 的列表允许用户从序列的两端推入或者弹出元素,获取列表元素,以及执行各种常见的列表操作,这里介绍一些常用的列表处理命令,并在 Yii 中的使用。

    RPUSH

    RPUSH:RPUSH key-name value [value …]
    将一个或多个值推入列表的右端(尾部)

    LPUSH

    LPUSH:LPUSH key-name value [value …]
    将一个或多个值推入列表的左端(头部)

    LLEN

    LLEN:LLEN key-name
    获取列表长度

    RPOP

    RPOP:RPOP key-name
    移除并返回列表最右端的元素

    LPOP

    LPOP:LPOP key-name
    移除并返回列表最左端的元素

    LINDEX

    LINDEX:LINDEX key-name offset
    返回列表中偏移量为 offset 的元素

    LRANGE

    LRANGE:LRANGE key-name start end
    返回列表从 start 偏移量到 end 偏移量范围内的所有元素,其中偏移量为 start 和偏移量为 end 的元素也会包含在被返回的元素之内。其中 0 表示列表的第一个元素, 1表示列表的第二个元素,以此类推。 也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

    LTRIM

    LTRIM:LTRIM key-name start end
    对列表进行修剪,只保留从 start 偏移量到 end 偏移量范围内的元素,其中偏移量为 start 和偏移量为 end 的元素也会被保留。

    BLPOP

    BLPOP:BLPOP key-name [key-name …] timeout
    从第一个非空列表中弹出位于最左端的元素,或者在 timeout 秒之内阻塞并等待可弹出的元素出现。

    BRPOP

    BRPOP:BRPOP key-name [key-name …] timeout
    从第一个非空列表中弹出位于最右端的元素,或者在 timeout 秒之内阻塞并等待可弹出的元素出现。

    RPOPLPUSH

    RPOPLPUSH:RPOPLPUSH source-key dest-key
    从 source-key 列表中弹出位于最右端的元素,然后将这个元素推入 dest-key 列表的最左端,并向用户返回这个元素。

    BRPOPLPUSH

    BRPOPLPUSH:BRPOPLPUSH source-key dest-key timeout
    从 source-key 列表中弹出位于最右端的元素,然后将这个元素推入 dest-key 列表的最左端,并向用户返回这个元素;如果 source-key 为空,那么在 timeout 秒之内阻塞并等待可弹出的元素出现。

    在 Yii 中使用实例:

    // 将一个或多个值推入列表的右端(尾部)
    Yii::$app->redis->rpush('listKey', 'aaa');
    Yii::$app->redis->rpush('listKey', 'bbb', 'ccc', 'ddd');
    // 将一个或多个值推入列表的左端(头部)
    Yii::$app->redis->lpush('listKey', 'eee', 'fff');
    // 获取列表长度
    Yii::$app->redis->llen('listKey');  // 6
    // 返回列表的所有元素
    Yii::$app->redis->lrange('listKey', 0, -1);  // ["fff","eee","aaa","bbb","ccc","ddd"]
    // 移除并返回列表最右端的元素
    Yii::$app->redis->rpop('listKey');   // ddd
    // 移除并返回列表最左端的元素
    Yii::$app->redis->lpop('listKey');   // fff
  • 相关阅读:
    转发:招聘一个靠谱的 iOS
    转发:经典面试题
    APP上架证书无效:解决
    转发:Xcode插件
    Alcatraz:插件管理
    类似禅道的多条件搜索功能,比如或者并且和模糊查询和指定查询,见下图吧
    关于angularjs中,数据模型被改变,页面不刷新的解决办法
    angluar1+ionic详情页返回在原来的位置(缓存数据和页面高度)
    unable to resolve module react-native-gesture-handler from
    解决React Native:Error: Cannot find module 'asap/raw'
  • 原文地址:https://www.cnblogs.com/woods1815/p/12991671.html
Copyright © 2011-2022 走看看