Windows下使用hiredis各种常见问题(折磨死人了)

Windows下使用hiredis各种常见问题(折磨死人了)

不得不说,对一个小白来说,刚摸索的过程很痛苦,所以在此给大家把一些常见问题给列出来,方便后面各位新手学习少走弯路,各位大神请轻喷。
1.还是按照其他人的方式先下载源码,不要告诉我怎么下。
https://github.com/MSOpenTech/redis
选择3.0版本,如果需要源码可以直接down,如果是要.exe文件需要选择release然后下载
这里写图片描述
2.此时已经获得源码和.exe

  • 打开D:\RedisWindows\redis-3.0\msvs目录下面的sln,vs2013或者12都可以
  • 选择hiredis和Win32_Interop项目重新生成相关的lib文件
  • *新建一个自己的vs项目并且配置相关属性
    这里写图片描述
    此处根据自己的目录选择,一般的目录是这样的:D:\RedisWindows\redis-3.0\deps\hiredis
    再配置
    这里写图片描述
    设置链接库的目录
    这里写图片描述
    这个目录注意一定是hiredis.lib和Win32_Interop.lib的目录,然后在配置输入
    这里写图片描述
    3.接下来就是添加自己的源码示例一下就行 main.cpp

在自己的源码中一定要添加D:\RedisWindows\redis-3.0\src\Win32_Interop目录下的
win32fixes.c 和win32fixes.h这两个文件到main.cpp同级目录,并且让自己的工程包含进去。
这里写图片描述

  • 现在添加几句源码
#include <hiredis.h>
//#define NO_QFORKIMPL
#include <win32fixes.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2, 1), &wsaData);
    redisContext*c = redisConnect("127.0.0.1", 6379);
    if (c->err)
    {
        redisFree(c);
        return 0;
    }
    system("pause");
    return 0;
}

此时运行出错:
这里写图片描述
各种errorC4996
然后在此处配置一下
这里写图片描述
把最上面3句加上,然后运行就OK
- 4.现在总结所遇到的问题

  • 如果你下载的源码来编译的时候目录有空格D:\RedisWindows\redis-3.0\msvs
    比如Redis+空格+Windows是这样的目录,那么你在打开RedisServer.sln编译Win32_Interop这个项目时会出现EventLog.dll打开失败或者出错,因此一定要把路径设置常规的方式也不要含有中文
  • 如果在编译自己创建的项目时出现

Redis.obj : error LNK2001: 无法解析的外部符号 __imp__WSAStartup@8
1>win32fixes.obj : error LNK2001: 无法解析的外部符号 __imp__WSAStartup@8
1>win32fixes.obj : error LNK2001: 无法解析的外部符号 __imp__setsockopt@20
1>hiredis.lib(hiredis.obj) : error LNK2001: 无法解析的外部符号 __imp__send@16
1>hiredis.lib(hiredis.obj) : error LNK2001: 无法解析的外部符号 __imp__closesocket@4
1>hiredis.lib(hiredis.obj) : error LNK2001: 无法解析的外部符号 __imp__recv@16
1>hiredis.lib(hiredis.obj) : error LNK2001: 无法解析的外部符号 __imp__WSAGetLastError@0
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 __imp__getsockopt@20
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 __imp__gethostbyname@4
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 ___WSAFDIsSet@8
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 __imp__socket@12
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 __imp__htons@4
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 __imp__select@20
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 __imp__inet_addr@4
在动态库输入的地方一定加上ws2_32.lib或者在代码前#pragma comment(lib, “ws2_32.lib”)
- 如果在前面都没问题了 并且redisserver也启动了还连接不上

WSADATA wsaData;
WSAStartup(MAKEWORD(2, 1), &wsaData);
在调用redisconnect函数前加上这个

5.最后再说说如何启动redisserver吧
进入cmd
这里写图片描述

最后感觉是不是很简单?

Hiredis.h是一个开源的C语言库,用于与Redis数据库进行通信。它提供了一组函数和数据结构,可以在Windows操作系统上开发应用程序与Redis进行交互。 对于Windows版的hiredis.h,首先需要了解hiredis.h的基本功能和用法。它可以实现与Redis服务器的连接、发送命令、接收和处理返回结果等功能。在Windows操作系统上,使用hiredis.h库需要进行以下步骤: 1. 下载和安装hiredis库:可以到官方网站或GitHub等资源库下载hiredis的源代码,然后进行编译和安装。也可以从其他地方获取已经编译好的库文件。 2. 引入头文件:在Windows应用程序的源代码中引入hiredis.h头文件,以便可以使用hiredis提供的函数和数据结构。 3. 建立连接:使用hiredis提供的函数,通过指定Redis服务器的IP地址和端口号来建立与Redis服务器的连接。例如,可以使用redisConnect函数创建连接对象,并指定Redis服务器的IP地址和端口号。 4. 发送和接收数据:可以使用hiredis提供的函数,向Redis服务器发送各种命令,如SET、GET等。同时,hiredis也提供了函数用于接收和处理Redis服务器返回的结果。 5. 关闭连接和释放资源:在使用hiredis库之后,应该调用相关函数来关闭与Redis服务器的连接,并释放资源。 需要注意的是,在Windows环境中使用hiredis.h可能需要一些额外的配置和编译步骤,比如指定库文件的路径、链接库文件等。 总之,windows版的hiredis.h主要用于在Windows操作系统上开发与Redis数据库进行交互的应用程序。通过引入hiredis.h头文件,并使用提供的函数和数据结构,可以方便地实现与Redis服务器的连接和数据交互。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值