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盘下,请自行搜索;
redis数据存储--C++连接redis的更多相关文章
- redis数据存储的细节
redis是一个K-V NoSql非关系型数据库,redis有物种数据类型,分别是String,Hash,list,set,zset:这五种类型都是针对K-V中的V设计的. 1.总体介绍:关于redi ...
- Redis数据存储优化机制(转)
原文:Redis学习笔记4--Redis数据存储优化机制 1.zipmap优化hash: 前面谈到将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象.省内存的原因是新建一个h ...
- Redis数据存储解决方案
http://www.tuicool.com/articles/77nUZn 1.背景 1.1 Redis简介 官方网站: http://redis.io/ ,Redis是REmote DIction ...
- 直接在安装了redis的Linux机器上操作redis数据存储类型--String类型
一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...
- Redis数据存储结构之String
前言: 在Redis使用中,我们最常使用的操作是set key value,或 get key value .这里面包含了redis最基本的数据类型:String,字符串类型是redis中最基本的类型 ...
- java架构之路-(Redis专题)SpringBoot连接Redis超简单
上次我们搭建了Redis的主从架构,哨兵架构以及我们的集群架构,但是我们一直还未投入到实战中去,这次我们用jedis和springboot两种方式来操作一下我们的redis 主从架构 如何配置我上次已 ...
- 用 Redis Desktop Manager 远程连接 redis 数据库。
环境: 本机OS:window 10(本机没有安装redis) redis 服务器:centos 7 使用 Redis Desktop Manager 工具远程连接 redis. Redis Desk ...
- 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
搭建环境:linux是centos7.4(请注意centos7以下版本的防火墙跟centos7以上的不同,使用redis客户端连接redis时会有区别,建议使用centos7以上版本) 一.下载red ...
- 服务端指南 数据存储篇 | 聊聊 Redis 使用场景(转)
作者:梁桂钊 本文,是升级版,补充部分实战案例.梳理几个场景下利用 Redis 的特性可以大大提高效率. 随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求.因此,Redis 基于内存存 ...
随机推荐
- c++博客转载
C++ 中文件流(fstream)的使用方法及示例 http://blog.jobbole.com/108649/ qt中文乱码问题: https://blog.csdn.net/brave_hear ...
- rman备份跳过read only数据文件,减少备份总量,加快备份时间
客户需求,RMAN备份时间过长,想缩短备份时间,优化备份. 客户基于表空间进行历史数据归档的方式,将历史的表空间进行read only,想让RMAN跳过只读表空间,减少RMAN备份的数据总量,从而缩短 ...
- leetcode --165--php
class Solution { /** * @param String $version1 * @param String $version2 * @return Integer */ functi ...
- 【Transact-SQL】让人快遗忘的游标
原文:[Transact-SQL]让人快遗忘的游标 最初学SQL Server的时候,当学到游标的时候,突然有了一种亲切感,因为这种通过一个while循环,一条一条的处理数据的方式,很像学过的过程式语 ...
- 【原创】大叔经验分享(84)spark sql中设置hive.exec.max.dynamic.partitions无效
spark 2.4 spark sql中执行 set hive.exec.max.dynamic.partitions=10000; 后再执行sql依然会报错: org.apache.hadoop.h ...
- map自定义键值类型
map自定义键值类型 改变Map的默认比较方式 https://www.cnblogs.com/zjfdlut/archive/2011/08/12/2135698.html 大家知道,STL中的ma ...
- Android中BroadcastReceiver的使用
1.Android中广播分为静态注册和动态注册 2.下面是一个简单静态注册的例子 创建一个继承BroadcastReceiver的子类 public class DeviceBootReceiver ...
- 将两个数组相同index的value合并成一个新的value组成一个新的数组
将两个数组相同index的value合并成一个新的value组成一个新的数组 前提: 这两个数组的长度相同 生成后的新数组长度也相同 返回值都是对象 把rows对象的key和value弄成两个数组, ...
- SQL中新建注释、查询注释和说明
1.查询注释 SELECT A.name AS table_name, B.name AS column_name, C.value AS column_description FROM sys.ta ...
- web服务器端挖矿代码攻击的错误检测及排除
a)挖矿代码简要阐述: 网页中嵌入Javascript, 一旦用户打开该网站,浏览器便会按照脚本的指令变成一个门罗币挖矿机.这一段附加的挖矿代码通常因为大量占用CPU,使用户的计算机变得异常卡顿甚至无 ...