PHP Redis实现消息队列 In PHP | 环境 PHP 7.0 Redis 5.3.1 代码 创建 inqueue.php,代码如下: 123456789101112131415161718192021222324252627282930313233<?php$queueName = 'CoCoQueue';$redisConfig['host'] = '127.0.0.1';$redisConfig['port'] = '6379';$list = [ ['name'=>'钢铁侠','item'=>'珍珠奶茶'], ['name'=>'蜘蛛侠','item'=>'珍珠奶茶'], ['name'=>'灭霸','item'=>'美式咖啡'],];if(!$list){ exit("暂无内容");}else{ try { $redis = new Redis(); $redis->connect($redisConfig['host'], $redisConfig['port']); $redis->select(0); } catch (Exception $e) { exit('连接redis失败: '.$e->getMessage()); } $exist = $redis->exists($queueName); if(!$exist){ foreach($list as $value){ $push = json_encode($value, JSON_UNESCAPED_UNICODE); $redis->rpush($queueName,$push); printf("入队的值%s\n", $push); } exit("入队完成"); }else{ exit("队列已存在"); }}?> 创建 outqueue.php,代码如下: 1234567891011121314151617181920212223<?php$queueName = 'CoCoQueue';$redisConfig['host'] = '127.0.0.1';$redisConfig['port'] = '6379';try { $redis = new Redis(); $redis->connect($redisConfig['host'], $redisConfig['port']); $redis->select(0);} catch (Exception $e) { exit('连接redis失败: '.$e->getMessage());}$size = $redis->lLen($queueName);if($size){ for ($i=0; $i < $size; $i++) { $pop = $redis->lpop($queueName); printf("出队的值%s\n", $pop); sleep(1); } exit('出队完成');}else{ exit('队列不存在');}?> 执行123456789$ php inqueue.php入队的值{"name":"钢铁侠","item":"珍珠奶茶"}入队的值{"name":"蜘蛛侠","item":"珍珠奶茶"}入队的值{"name":"灭霸","item":"美式咖啡"}入队完成$ php outqueue.php出队的值{"name":"钢铁侠","item":"珍珠奶茶"}出队的值{"name":"蜘蛛侠","item":"珍珠奶茶"}出队的值{"name":"灭霸","item":"美式咖啡"} -------------本文结束感谢您的阅读-------------