一、下载的是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盘下,请自行搜索;

    

redis数据存储--C++连接redis的更多相关文章

  1. redis数据存储的细节

    redis是一个K-V NoSql非关系型数据库,redis有物种数据类型,分别是String,Hash,list,set,zset:这五种类型都是针对K-V中的V设计的. 1.总体介绍:关于redi ...

  2. Redis数据存储优化机制(转)

    原文:Redis学习笔记4--Redis数据存储优化机制 1.zipmap优化hash: 前面谈到将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象.省内存的原因是新建一个h ...

  3. Redis数据存储解决方案

    http://www.tuicool.com/articles/77nUZn 1.背景 1.1 Redis简介 官方网站: http://redis.io/ ,Redis是REmote DIction ...

  4. 直接在安装了redis的Linux机器上操作redis数据存储类型--String类型

    一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...

  5. Redis数据存储结构之String

    前言: 在Redis使用中,我们最常使用的操作是set key value,或 get key value .这里面包含了redis最基本的数据类型:String,字符串类型是redis中最基本的类型 ...

  6. java架构之路-(Redis专题)SpringBoot连接Redis超简单

    上次我们搭建了Redis的主从架构,哨兵架构以及我们的集群架构,但是我们一直还未投入到实战中去,这次我们用jedis和springboot两种方式来操作一下我们的redis 主从架构 如何配置我上次已 ...

  7. 用 Redis Desktop Manager 远程连接 redis 数据库。

    环境: 本机OS:window 10(本机没有安装redis) redis 服务器:centos 7 使用 Redis Desktop Manager 工具远程连接 redis. Redis Desk ...

  8. 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题

    搭建环境:linux是centos7.4(请注意centos7以下版本的防火墙跟centos7以上的不同,使用redis客户端连接redis时会有区别,建议使用centos7以上版本) 一.下载red ...

  9. 服务端指南 数据存储篇 | 聊聊 Redis 使用场景(转)

    作者:梁桂钊 本文,是升级版,补充部分实战案例.梳理几个场景下利用 Redis 的特性可以大大提高效率. 随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求.因此,Redis 基于内存存 ...

随机推荐

  1. go if 便捷语句

    之前使用java  C#没这么用过. 绝对新技能 if v := math.Pow(x, n); v < lim { 跟 for 一样,`if` 语句可以在条件之前执行一个简单的语句. 由这个语 ...

  2. c++学习-----引用

    引用相当于给一个对象起个别名 必须初始化 引用只是与一个对象bind,所以引用无法改变 引用不是一个对象,所以没有引用的引用 引用的初始化值必须是一个对象,而不能是字面量或表达式 引用不是地址,所以引 ...

  3. (十)Activitivi5之启动流程/完成任务的时候设置流程变量

    一.启动流程的时候设置流程变量 1.1 案例 /** * 启动流程实例 */ @Test public void start() { Student student=new Student(); st ...

  4. (八)mybatis之多对多

    一.需求分析 需求:查询所有用户的信息以及每个用户所属的组的信息 分析:一个用户可以有多个组,一个组也可以由多个用户. 多对多,可以设置一张中间表,该表存放的是用户表和组表的对应关系. 二.创建数据库 ...

  5. Django rest-framework框架-组件之视图

    视图: a. django class Test(View): ... b. rest_framework class Test(APIView): ... c. GenericAPIView 一般不 ...

  6. Java 面向对象_继承

    继承 在继承的关系中,子类就是一个父类,也就是说,子类可以被当做父类看待,例如:父类是员工,子类是程序员,那么程序员就是一个员工,代码示例: // 员工类 public class Employee{ ...

  7. Pandas进阶之提升运行效率

    前言 如果你现在正在学习数据分析,或者正在从事数据分析行业,肯定会处理一些大数据集.pandas就是这些大数据集的一个很好的处理工具.那么pandas到底是什么呢?官方文档上说: " 快速, ...

  8. 关闭google默认打开翻译提醒

    关闭google默认打开翻译提醒 在header中添加以下代码: <meta name="google" content="notranslate" /& ...

  9. goroutine的设计与实现

    goroutine背后的系统知识 http://www.sizeofvoid.net/goroutine-under-the-hood/ 下周写完

  10. 爬虫保存Cookie

    import http.cookiejar as cookielib session.cookie = cookielib.LWPCookieJar() session.cookie.save(fil ...