php - redis做一个队列,为什么出队列是会少显示一个元素?

查看:181
本文介绍了php - redis做一个队列,为什么出队列是会少显示一个元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

$redis = new redis();

3 $redis->connect('127.0.0.1',6379);
4 $arr= array('h','e','l','l','o','w','o','r','l','d');
5 foreach($arr as $k =>$val){ //入队
6 $redis->rpush('list',$val);
7 }

6 while(true){ //出对
7 $get = $redis->lpop('list');
9 if($get)
10 {
11 echo '出队列--'.$get;
12 echo '';
13 }else{
14 echo '出队完成';
15 return false;
16 }
17
18 }

1) "e"

2) "l"

3) "l"

4) "o"

5) "w"

6) "o"

7) "r"

8) "l"

9) "d"

少了一个h

解决方案

    <?php
    $redis = new \redis();
    $redis->connect('127.0.0.1', 6379);
    $arr = array('h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd');
    foreach ($arr as $k => $val) { //入队
        $redis->rpush('list', $val);
    }
    echo "队列总长度:".$redis->lLen('list');
    echo "<br/>";
    
    while (true) { //出对
        $get = $redis->lpop('list');
        if ($get) {
            echo '出队列--' . $get;
            echo '<br/>';
        } else {
            echo '出队完成';
            return false;
        }
    
    }
    这是你的代码,没有呀
    
队列总长度:10
出队列--h
出队列--e
出队列--l
出队列--l
出队列--o
出队列--w
出队列--o
出队列--r
出队列--l
出队列--d
出队完成
    
    
    
    

这篇关于php - redis做一个队列,为什么出队列是会少显示一个元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆