【问题标题】:Hiredis asynchronousHiredis 异步
【发布时间】:2021-06-15 06:01:07
【问题描述】:

我正在开发一个简单的应用程序,它使用了 Redis 的官方 C 客户端hiredis 的异步功能。作为第一步,我尝试编译the github repo 中提供的示例程序。我正在使用在 Ubuntu 20.04 上运行的 gcc 版本 9.3.0 进行编译。

编译失败并显示以下错误消息:

aeEventLoop 定义未找到。

我在所有头文件和代码文件中搜索了该结构。但是,我找不到这样的定义。

请告知如何解决此问题。谢谢!

【问题讨论】:

    标签: ubuntu asynchronous redis hiredis


    【解决方案1】:

    我发现 aeEventLoop 结构体是在 ae.h 中定义的,这是一个头文件,是 Redis 源文件的一部分。 使用 Redis 源代码编译的问题是发行版支持的 Re dis 版本(至少是稳定版本)通常比 Redis 站点上可供下载的 Redis 旧得多。例如,Redis 5.0.7 在 Ubuntu 20.04 LTS 上可用; Redis 6.2.4 可在 Redis 站点上下载。所以需要下载旧版本的源代码才能完成编译。

    【讨论】:

      【解决方案2】:

      Hiredis 支持许多不同的事件库,例如 libevent、libev、glib、qt 等等。 AE 是 Redis(服务器)中使用的事件库,在 Hiredis 中使用它需要 Redis 中的一些文件,但其他事件库都不依赖于 Redis 源代码。我建议你改用 libevent 或 libev。

      使用异步 API 和不同事件库的示例:https://github.com/redis/hiredis/tree/master/examples

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2016-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多