ThinkPHP5+Redis List(列表)操作


    //在列表头部插入一个值one,当列表不存在时自动创建一个列表,key1为列表名    
    $redis->lpush("key1", "one");
    
    //在列表尾部插入一个值two,当列表不存在时自动创建一个列表,key1为列表名    
    $redis->rPush("key1","two");     
    
    //将一个插入已存在的列表头部,列表不存在时操作无效    
    $redis->rPushx("key1","1");     
    
    //删除列表的第一个元素并返回列表和列表的第一个元素,当key1不存在或不是列表则返回false    
    $redis->lPop('key1');     
    
    //删除列表的最后一个元素并返回列表和列表的最后一个元素,当key1不存在或不是列表则返回false    
    $redis->rPop('key1');     
    
    //删除并或取列表的第一个元素,如果没有元素则会阻塞直到等待超时    
    $redis->blPop('asd', 10);     
    
    //删除并或取列表的最后一个元素,如果没有元素则会阻塞直到等待超时    
    $ret = $redis->brPop('asd', 10);     
    
    //移除列表key1中最后一个元素,将其插入另一个列表asd头部,并返回这个元素。若源列表没有元素则返回false    
    $redis->rpoplpush('key1', 'asd');     
    
    //移除列表key1中最后一个元素,将其插入另一个列表asd头部,并返回这个元素。如果列表没有元素则会阻塞列表直到超时,超时返回false。    
    $ret = $redis->brpoplpush('key1', 'asd', 10);
    
    //根据KEY返回该KEY代表的LIST的长度,如果这个LIST不存在或者为空,那么ISIZE返回0    
    //如果指定的KEY的数据类型不是LIST或者不为空,那么返回FALSE。    
    //所以在这里多说一句,当用ISize返回判断值的时候,===就有用处了,这里FLASE和0是两个概念了。    
    $redis->rPush('key1', 'A');    
    $redis->rPush('key1', 'B');    
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */    
    $redis->lSize('key1');/* 3 */    
    $redis->rPop('key1');     
    $redis->lSize('key1');/* 2 */
    
    //通过索引修改列表中元素的值,如果没有该索引,则返回false。    
    $redis->rPush('key1', 'A');    
    $redis->rPush('key1', 'B');    
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */    
    $redis->lGet('key1', 0); /* 'A' */    
    $redis->lSet('key1', 0, 'X');    
    $redis->lGet('key1', 0); /* 'X' */ 
    
    //根据索引值返回指定KEY LIST中的元素。0为第一个元素,1为第二个元素。    
    //-1为倒数第一个元素,-2为倒数第二个元素。如果指定了一个不存在的索引值,则返回FLASE。   
    $redis->rPush('key1', 'A');    
    $redis->rPush('key1', 'B');    
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */    
    $redis->lGet('key1', 0); /* 'A' */    
    $redis->lGet('key1', -1); /* 'C' */    
    $redis->lGet('key1', 10); /* `FALSE` */
    
    //取得指定索引值范围内的所有元素。    
    $redis->rPush('key1', 'A');    
    $redis->rPush('key1', 'B');    
    $redis->rPush('key1', 'C');    
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */
    
    //它将截取LIST中指定范围内的元素组成一个新的LIST并指向KEY。简短解说就是截取LIST。    
    //这个可不是JS,或者PHP中清空空格的意思。    
    $redis->rPush('key1', 'A');    
    $redis->rPush('key1', 'B');    
    $redis->rPush('key1', 'C');    
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */    
    $redis->lTrim('key1', 0, 1);    
    $redis->lRange('key1', 0, -1); /* array('A', 'B') */
    
    //IRem,IRemove函数,首先要去判断count参数,如果count参数为0,那么所有符合删除条件的元素都将被移除。    
    //如果count参数为整数,将从左至右删除count个符合条件的元素,如果为负数则从右至左删除count个符合条件的元素。    
    $redis->lPush('key1', 'A');    
    $redis->lPush('key1', 'B');    
    $redis->lPush('key1', 'C');     
    $redis->lPush('key1', 'A');     
    $redis->lPush('key1', 'A');     
    $redis->lRange('key1', 0, -1); /* array('A', 'A', 'C', 'B', 'A') */    
    $redis->lRem('key1', 'A', 2); /* 2 */    
    $redis->lRange('key1', 0, -1); /* array('C', 'B', 'A') */
    
    //返回列表长度    
    $redis->lLen('key1');     
    
    //通过索引 (也就是下标key) 获取列表中的元素,如果没有该索引,则返回false。    
    $redis->lindex('key1', 0);     
    
    //在列表key1中指定元素six前面或后面插入元素。若指定元素不在列表中,或列表不存在时,不执行任何操作    
    //Redis::AFTER插入元素后面    Redis::BEFORE插入元素前面    
    //返回值:插入成功返回插入后列表元素个数,若key1不存在返回0,若key1不是列表返回false    
    $redis->lInsert('key1', Redis::BEFORE, 'one', '1');    
    $redis->delete('key1');    
    $redis->lInsert('key1', Redis::AFTER, 'A', 'X'); /* 0 */    
    $redis->lPush('key1', 'A');    
    $redis->lPush('key1', 'B');    
    $redis->lPush('key1', 'C');    
    $redis->lInsert('key1', Redis::BEFORE, 'C', 'X'); /* 4 */    
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C') */    
    $redis->lInsert('key1', Redis::AFTER, 'C', 'Y'); /* 5 */    
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C', 'Y') */    
    $redis->lInsert('key1', Redis::AFTER, 'W', 'value'); /* -1 */     
    
    //根据第三个参数(count),删除掉相对的value    
    //count > 0 : 从表头开始向表尾搜索,移除与value相等的元素,数量为count。    
    //count < 0 : 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。    
    //count = 0 : 移除表中所有与value相等的值。    
    //返回实际删除元素个数    
    $redis->lrem('key1', '1', -2);
    
    // 获取存储的数据并输出列表下标0到5的数据    
    // 0为开始查询的列表里的第一个元素,-1则为最后一个元素    
    // 5代表查询5条数据,当5为-1时则查看所有数据,    
    $redis->lrange("key1", 0 ,5);


最新回复 (0)
发新帖