对协程的理解和实现 可以理解成
使用同步的代码 实现 异步的功能
这里 使用redis组件 是说明这句话
在使用组件之前 需要确认环境中的swoole环境 是否开启了 async-redis的这个配置
、
如果没有的话 建议对swoole进行重新编译
可参考这里https://blog.csdn.net/zhangzeshan/article/details/102568239
先贴上代码在进行说明
<?php
/**
* 通过同步的写法 实现异步的操作
* 协程组件 redis
*/
$http = new swoole_http_server("0.0.0.0",9501);
$http->on('request',function ($request,$response){
//获取redis的数据 输出到浏览器
$redis = new Swoole\Coroutine\Redis();
$redis->connect("127.0.0.1",6379);
//将请求连接的 get参数的值 获取redis中key对应的value
$value = $redis->get($request->get['a']);
//配置header头信息
$response->header("Content-Type","text/plain");
//获取之后 返回给客户端
$response->end($value);
});
//开启服务
$http->start();
首先 创建一个http服务 在这个服务当中 去创建异步的redis的服务
但是如果使用异步风格的写法去创建redis服务 会导致代码的可读性不高
那么在这里 就使用到了协程的redis客户端
首先实例化协程中的redis类
之后连接 调用属性 直到将获取的数据 返回给客户端
在这里可以看到 代码的风格 是属于面向过程的风格的 却实现了异步的操作
最后不要忘记 start这个http服务!
关于swoole的协程 只能先介绍到这里 后续会继续更新更进阶的用法
感兴趣的朋友可以关注我!
有不清楚的欢迎在评论区留言!
来源:CSDN
作者:张芝山
链接:https://blog.csdn.net/zhangzeshan/article/details/103551250