美文网首页
redis之list类型模拟队列

redis之list类型模拟队列

作者: 骑蚂蚁上高速_jun | 来源:发表于2020-02-01 21:20 被阅读0次

使用redis 的list类型实现异步队列。

  1. 队列消费者代码:
$redis = new redis;
$redis->connect('127.0.0.1',6379);
$redis->auth("password");
$redis->setOption(Redis::OPT_READ_TIMEOUT,-1); // 使其守护进程不会出现超时错误
while(true){
    /**
     * 移除并获取列表的最后一个元素。
     * 阻塞程序等待列表弹出元素,
     * 第二个参数是等待多少s,如果为0表示无限等待
     */
    $data = $redis->bRpop("list:queue",0);
    $stdclass = json_decode($data[1]);
    var_dump($stdclass);
    // todo .... 执行业务代码
}
  1. 队列生产者代码
// 生产者
$redis = new redis;
$redis->connect('127.0.0.1',6379);
$redis->auth("password");
$data = [
    '....'
];
$redis->lpush("list:queue",json_encode($data));

相关文章

网友评论

      本文标题:redis之list类型模拟队列

      本文链接:https://www.haomeiwen.com/subject/pqzxxhtx.html