• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

redis数据存储--C++连接redis

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、下载的是Redis Windows版本;下载地址:https://github.com/microsoftarchive/redis;解压到:E:\Software\redis-3.0;

二、用VS打开项目:

  1. 打开文件E:\Software\redis-3.0\msvs;点击RedisServer.sln,用VS打开;所有警告点击确定,如下图:这里使用的是VS2015

    

  2. 运行所有解决方案:

    加载项目后如图:

    

 

     右击解决方案,选择重新生成解决方案,解决方案生成成功

    

 

  3. 打开文件E:\Software\redis-3.0\msvs\x64\Debug,查看生成的lib和exe

    

 

 三、 新建项目TestRedis

  1. 添加包含目录,点击TestRedis项目,右键属性->C/C++->常规->附加包含目录,输入以下两个目录,以“;”号分隔开:

    A、添加Redis库原码, 路径:E:\Software\redis-3.0\src;

    B、添加HiRedis库原码,路径:E:\Software\redis-3.0\deps\hiredis;

  2. 添加附加依赖库:hiredis.lib,Win32_Interop.lib;点击TestRedis项目,右键属性->链接器->输入->附加依赖项输入库所在目录;

  3.重新启动Redis-server, 打开CMD,导航到Redis-server目录,输入,如下

 

    

四,添加TestRedis项目,尝试连接

#include "stdafx.h"
#include <Windows.h>
#include <hiredis.h>

#pragma comment(lib, "Win32_Interop.lib")
#pragma comment(lib, "hiredis.lib")

int main()
{
    //redis默认监听端口为6387 可以再配置文件中修改 
    redisContext* pRedisContext = redisConnect("127.0.0.1", 6379);
    if (NULL == pRedisContext || pRedisContext->err)
    {
        printf("%s \r\n", pRedisContext->errstr);
        printf("Connect to redis server failed \n");
        return -1;
    }

    //输入Redis密码
    const char *pszRedisPwd = "123456";
    redisReply *pRedisReply = (redisReply*)redisCommand(pRedisContext, "AUTH %s", pszRedisPwd);
    if (NULL != pRedisReply)
    {
        freeReplyObject(pRedisReply);
    }
    //用get命令获取数据
    char szRedisBuff[256] = { 0 };
    sprintf_s(szRedisBuff, "GET %s", "name");
    pRedisReply = (redisReply*)redisCommand(pRedisContext, szRedisBuff);
    if (NULL == pRedisReply)
    {
        printf("Get data Error!");
        return -1;
    }

    if (NULL == pRedisReply->str)
    {
        freeReplyObject(pRedisReply);
        return -1;
    }

    string strRes(pRedisReply->str);
    freeReplyObject(pRedisReply);

    //向Redis写入数据
    pRedisReply = (redisReply *)redisCommand(pRedisContext, "SET keyName huantest");
    if (NULL != pRedisReply)
    {
        freeReplyObject(pRedisReply);
    }

    return 0; }

 

 注意:Redis Windows截止作者使用的时间:

  1. 最新版本为 3.0, 3.0的Window版本在使用redisConnectWithTimeout的方法时会出现连接错误:报磁盘空间不足;

  2. 如果vs环境下没有库文件ShLwApi.Lib,AdvAPI32.Lib,会报错;这两个库文件在C盘下,请自行搜索;

 

    

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【C#】访问泛型中的List列表数据发布时间:2022-07-14
下一篇:
UDP实现一个简易的聊天室(Unity&amp;&amp;C#完成)发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap