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

一、下载的是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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值