<?php$pool = new RedisPool();$server = new Swoole\Http\Server('0.0.0.0', 9501);$server->on('Request', function($req, $resp) use ($pool) { //从连接池中获取一个Redis协程客户端 $redis = $pool->get(); //连接失败 if ($redis === false) { $resp->end("ERROR"); return; } $result = $redis->get('key'); $resp->end(var_export($result, true)); //释放客户端,其他协程可复用此对象 $pool->put($redis);});$server->start();class RedisPool{ protected $pool; function __construct() { $this->pool = new SplQueue; } function put($redis) { $this->pool->push($redis); } function get() { //有空闲连接 if (count($this->pool) > 0) { return $this->pool->pop(); } //无空闲连接,创建新连接 $redis = new Swoole\Coroutine\Redis(); $res = $redis->connect('127.0.0.1', 6379); if ($res == false) { return false; } else { return $redis; } }}