//业务场景不在此阐述 for ( $i = 1 ; $i <= 10 ; $i ++ ){ $user = array ( 'user_id' => $i , 'username' => 'demo' . $i ); $redis -> lPush ( 'data' , json_encode ( $user ));

2.查看队列中的所有数据

//查看所有数据
public function data()
    $redis  = new Redis();
    dump($redis->lRange('data',0,-1));
array(10) {
  [0] => string(34) "{"user_id":10,"username":"demo10"}"
  [1] => string(32) "{"user_id":9,"username":"demo9"}"
  [2] => string(32) "{"user_id":8,"username":"demo8"}"
  [3] => string(32) "{"user_id":7,"username":"demo7"}"
  [4] => string(32) "{"user_id":6,"username":"demo6"}"
  [5] => string(32) "{"user_id":5,"username":"demo5"}"
  [6] => string(32) "{"user_id":4,"username":"demo4"}"
  [7] => string(32) "{"user_id":3,"username":"demo3"}"
  [8] => string(32) "{"user_id":2,"username":"demo2"}"
  [9] => string(32) "{"user_id":1,"username":"demo1"}"

3.出列,出列为消费者,同样,尽管尽情的消费即可,只要队列有数据就进行消费,勤勤恳恳的工作。不用考虑什么时候有数据不用考虑多少数据,只要有数据就干掉他。

//消费者
public function out()
    $redis  = new Redis();
    //获取队列长度
    $count  = $redis->handler()->llen('data');
    for ( $i=0; $i < $count; $i++){
        //拿出队列中第一个json信息
        $user = $redis->lIndex('data',0);
        //解析成数组
        $user_info = json_decode($user,true);
        //此处进行业务处理。
        echo "<br /> ".$user_info['username']."出队列成功  <br />";
        //处理成功,将此信息移除队列。
        $redis->lPop('data');
demo10出队列成功
demo9出队列成功
demo8出队列成功
demo7出队列成功
demo6出队列成功
demo5出队列成功
demo4出队列成功
demo3出队列成功
demo2出队列成功
demo1出队列成功
复制代码
分类:
后端
  •