【问题标题】:How does nginx_redis2_module achieve non-blocking operation?nginx_redis2_module如何实现非阻塞操作?
【发布时间】:2015-05-22 20:27:58
【问题描述】:

我需要一个 nginx 服务器来接收 HTTP 请求并从 Redis-store 发回响应,这应该是非阻塞的。在谷歌搜索并浏览论坛之后,我遇到了 nginx_redis2_module。我尝试浏览代码,但无法理解它是如何工作的。它们是如何实现非阻塞操作的?他们是否通过向 nginx 的事件循环中添加事件来实现这一点?是否有任何文档或示例代码是如何完成的?

来源:https://github.com/openresty/redis2-nginx-module

【问题讨论】:

    标签: nginx openresty


    【解决方案1】:

    nginx的本质是非阻塞模块。 这是一个复杂的领域。 在这里您可能会找到一些起点:how to write Nginx module?

    仅供参考:

    与 lua-nginx-module 配合使用时,建议 使用 lua-resty-redis 库而不是这个模块,因为 前者更灵活,内存效率更高。

    【讨论】:

    • 我知道怎么写基本的nginx模块,其实我什至写过redis模块,但它不是非阻塞的。我想要一个非阻塞的。我也看到了“lua_nginx_module”和“nginx_redis2_module”。想知道它们是如何工作的,即它们是如何实现非阻塞操作的。
    • 一张大图 - 你发出一个子请求,nginx 将控制权返回给你的模块并在响应时请求上下文,然后你可以为原始请求创建响应 evanmiller.org/nginx-modules-guide-advanced.html#subrequests
    • 我在 github 中搜索了 nginx_redis2_module 代码,找不到与子请求相关的任何内容
    • 更准确地说 - nginx_redis2_module 是上游处理程序evanmiller.org/nginx-modules-guide.html#proxying。关键句 -
    猜你喜欢
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多