swoole入门之协程的示例

有些话、适合烂在心里 提交于 2019-12-15 19:31:45

对协程的理解和实现  可以理解成 

使用同步的代码 实现 异步的功能

这里 使用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的协程  只能先介绍到这里 后续会继续更新更进阶的用法

感兴趣的朋友可以关注我!

有不清楚的欢迎在评论区留言!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!