ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# RedisAsynPool 异步redis连接池 示例: ```php $this->redis_pool->hMGet(’test',[1,2,3,4], function ($uids) { }); ``` ## 协程模式 ```php $this->redis_pool->getCoroutine(); ``` 这个函数在注释中表示返回的是\Redis扩展的一个抽象类其实返回的是一个迭代器,我们只需要他的代码提示,1.7版本已经将同步和异步的使用方式做了完全的统一,和\Redis扩展的用法完全一致。 示例: ```php $mySqlCoroutine = $this->mysql_pool->dbQueryBuilder->select('*')->from('account')->where('uid', 10303)->coroutineSend(); $mysql_result = yield $mySqlCoroutine; $redisCoroutine = $this->redis_pool->getCoroutine()->get('test'); $redis_result = yield $redisCoroutine; ``` 使用协程会大大简化代码的书写,提高代码的可读性。 上面的代码通过yield关键字返回了异步回调的值。 执行顺序 mysql_send->mysql_rev->redis_send->redis_rev; ```php $mySqlCoroutine = $this->mysql_pool->dbQueryBuilder->select('*')->from('account')->where('uid', 10303)->coroutineSend(); $redisCoroutine = $this->redis_pool->getCoroutine()->get('test'); $mysql_result = yield $mySqlCoroutine; $redis_result = yield $redisCoroutine; ``` 执行顺序 mysql_send->redis_send->mysql_rev->redis_rev; 参考类ServerRedisTest.php,可以在test文件夹中找到。