windows hiredis使用异步缺少ae解决方案

1 篇文章 0 订阅
1 篇文章 0 订阅

问题:

win redis源码库:GitHub - microsoftarchive/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes

在windows中使用hiredis时若是用到redis自带的ae,若正常编译hiredis下目录的文件,会出现缺少ae的一些函数。

 这是因为编译hiredis.lib时并没有加入ae的源代码文件所导致,ae的源代码文件在src目录中

所以解决方案是编译hiredis时,将ae源码加入编译即可

解决步骤:[当前目录为hiredis]

1.将../../src/ae.c  拷贝到 到 hiredis目录下

2.hiredis 工程 添加附件包含目录 ../../src

3.hiredis 工程 添加文件 ./ae.c   ./adapters/ae.h    ../../src/adlist.h|adlist.c|zmalloc.h|zmalloc.c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在QT中使用Hiredis异步连接并设置时间,可以按照以下步骤进行: 1. 安装Hiredis 在QT项目中使用Hiredis,需要先安装Hiredis库。可以通过以下命令在Ubuntu中安装Hiredis: ``` sudo apt-get install libhiredis-dev ``` 2. 设置Hiredis异步连接 在QT项目中使用Hiredis异步连接,需要使用event loop库来处理异步事件。可以使用libevent或者Qt的事件循环。这里使用Qt的事件循环来处理异步事件。 首先,需要使用Hiredis提供的`redisAsyncConnect()`函数来建立异步连接。例如: ``` redisAsyncContext *redis = redisAsyncConnect("127.0.0.1", 6379); ``` 然后,需要设置连接回调函数和命令回调函数。连接回调函数在连接成功或失败时调用,命令回调函数在命令执行成功或失败时调用。例如: ``` redisAsyncSetConnectCallback(redis, connectCallback); redisAsyncSetDisconnectCallback(redis, disconnectCallback); redisAsyncCommand(redis, commandCallback, NULL, "SET key value"); ``` 这里的`connectCallback`、`disconnectCallback`和`commandCallback`都是回调函数,需要根据具体情况实现。 3. 设置Hiredis异步事件处理 使用Qt的事件循环处理Hiredis异步事件,可以使用`QSocketNotifier`类来监控异步连接的文件描述符,使用`QTimer`类来定时处理异步事件。例如: ``` QSocketNotifier *notifier = new QSocketNotifier(redis->c.fd, QSocketNotifier::Read); connect(notifier, SIGNAL(activated(int)), this, SLOT(redisEventLoop())); QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(redisEventLoop())); timer->start(1); ``` 这里的`redisEventLoop()`是处理异步事件的槽函数,需要根据具体情况实现。 4. 设置Hiredis异步连接超时时间 可以使用`redisAsyncSetTimeout()`函数设置异步连接超时时间。例如: ``` struct timeval tv = {1, 0}; redisAsyncSetTimeout(redis, tv); ``` 这里的超时时间为1秒。 总的来说,要在QT中使用Hiredis异步连接并设置时间,需要使用Hiredis提供的异步连接函数和事件处理函数,同时结合Qt的事件循环来处理异步事件,并使用`redisAsyncSetTimeout()`函数设置连接超时时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值