相信做过服务端开发的应该都知道Redis的大名,它是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,我们后台是用C++开发的,问了下他们,用的缓存框架有Redis,SSDB,今天看了几个帖子,简单了解Redis的用法。记录一下过程。
首先去官网下载最新的Redis源码
http://redis.io/
解压之后,进入目录编译
make
make test
sudo make install
下载hredis
https://github.com/redis/hiredis
解压之后,同样的
make
sudo make install
进入Redis的src目录
启动服务
./redis-server
redis-cli
连接成功...
代码测试
新建一个临时目录
创建新文件redis.h
#ifndef _REDIS_H_
#define _REDIS_H_
#include <iostream>
#include <string.h>
#include <string>
#include <stdio.h>
#include <hiredis/hiredis.h>
class Redis
{
public:
Redis(){}
~Redis()
{
this->_connect = NULL;
this->_reply = NULL;
}
bool connect(std::string host, int port)
{
this->_connect = redisConnect(host.c_str(), port);
if(this->_connect != NULL && this->_connect->err)
{
printf("connect error: %s\n", this->_connect->errstr);
return 0;
}
return 1;
}
std::string get(std::string key)
{
this->_reply = (redisReply*)redisCommand(this->_connect, "GET %s", key.c_str());
std::string str = this->_reply->str;
freeReplyObject(this->_reply);
return str;
}
void set(std::string key, std::string value)
{
redisCommand(this->_connect, "SET %s %s", key.c_str(), value.c_str());
}
private:
redisContext* _connect;
redisReply* _reply;
};
#endif //_REDIS_H_
创建redis.cpp
#include "redis.h"
int main()
{
Redis *r = new Redis();
if(!r->connect("127.0.0.1", 6379))
{
printf("connect error!\n");
return 0;
}
r->set("name", "Andy");
printf("Get the name is %s\n", r->get("name").c_str());
delete r;
return 0;
}
编写Makefile文件
redis: redis.cpp redis.h
g++ redis.cpp -o redis -L/usr/local/lib/ -lhiredis
clean:
rm redis.o redis
进行编译
make
或者命令行执行
g++ redis.cpp -o redis -L/usr/local/lib/ -lhiredis
运行如果出现找不到动态链接库
在/etc/ld.so.conf.d/目录下新建文件usr-libs.conf,内容是:/usr/local/lib
最后执行
相关推荐
总的来说,C++操作Redis数据库涉及的主要知识点包括: 1. Redis的数据结构和命令:理解Redis提供的不同数据类型及其操作命令,如字符串、哈希表、列表、集合、有序集合等。 2. C++库选择:熟悉cpp-redis、hiredis等...
【C++操作Redis数据库】 Redis是一个高性能的键值对存储系统,常被用作数据库、缓存和消息中间件。在C++中与Redis交互,通常需要借助客户端库,这里提到的是`hiredis`,这是一个轻量级、高效的纯C语言实现的Redis...
在IT领域,Redis是一个广泛应用的高性能键值存储系统,常被用作数据库、缓存和消息中间件。...通过学习和理解这些代码,你将能够更好地理解和使用C++操作Redis的方法,特别是进行分布式操作时的策略和技巧。
**C++操作Redis的客户端Hiredis库** Redis是一个高性能的键值存储系统,常用于数据缓存、消息队列等场景。为了在C++应用中与Redis进行交互,我们通常会使用客户端库,其中Hiredis是一个轻量级、高效的选项。本文将...
而C++作为一门强大的编程语言,与Redis的结合使得开发者能够高效地利用Redis的功能。本篇文章将深入探讨如何在C++中简单使用Redis客户端。 首先,为了在C++中与Redis进行交互,我们需要一个支持C++的Redis客户端库...
然而,这里提到的是"需要boost库",这可能是指使用`cpp_redis`库,它是一个基于Boost.Asio的C++ Redis客户端,提供了一种更面向对象的方式来操作Redis。 在`cpp_redis`库中,你可以通过创建客户端实例,然后调用...
此代码实现了redis使用hiredis c接口开发,具体实现了string和list类型的存取,具体信息请看 https://blog.csdn.net/bwangk/article/details/83060374
示例将Hiredis的操作封装为两个导出函数 Set 与 Get, 支持 Unicode 编码方式,支持二进制读写,有断线重连功能,可以使用静态库或动态库。 唯一实时Hiredis.dll 动态库方式。示例在 Win 10 VS2015 环境下编译通过。
此外,为了在Windows上运行Redis服务,你可能还需要下载并安装Redis for Windows,这是一个专门为Windows操作系统优化的版本。安装后,可以通过启动服务或者使用`redis-server.exe`命令行工具来运行Redis服务器。 ...
本知识点将详细讨论如何在C++中封装Redis访问类,以及实现set和get操作。 首先,为了在C++中与Redis进行交互,我们需要一个客户端库。一个常用的C++ Redis客户端库是`rediscpp`或`hiredis`。这两个库提供了C++接口...
hiredis是redis数据库的C接口,目前只能在linux下使用,几个基本的函数就可以操作redis数据库了。 函数原型:redisContext *redisConnect(const char *ip, int port); 说明:该函数用来连接redis数据库,参数为...
在IT行业中,Redis是一个高性能的键值存储系统,...通过封装这些操作,我们可以构建出易于使用的C++ Redis客户端,从而更好地集成Redis到我们的应用程序中。同时,了解Hiredis的底层机制有助于优化性能和处理异常情况。
`redis_helper` 可能是为 C++ 开发的一个库或框架,方便程序员更便捷地进行 Redis 操作。 本文将深入探讨如何使用 C++ 与 Redis 进行交互,以及 `redis_helper` 在此过程中的作用。 首先,为了在 C++ 中与 Redis ...
c++ hiredis redis-3.0 vs2013 src 压缩包内包含hiredis.lib等编译完成的lib文件. 更多教程 https://blog.csdn.net/wangningyu Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多...
在"RedisTestDemo"项目中,你可以按照这些步骤创建一个简单的C++应用程序,测试不同的Redis操作,如读写数据、执行事务、订阅和发布消息。这个项目实例将帮助你理解如何在VS2012中有效地使用C++与Redis进行通信,为...
在C++中对Redis进行封装,可以方便地在C++程序中利用Redis的功能,提高开发效率。以下是一些关于“Redis C++封装”的核心知识点: 1. **Redis数据结构**:Redis支持多种数据结构,如字符串(String)、哈希表(Hash...
这里我们将详细介绍如何使用给定的文件:gcc-c++.tar.gz,gcc.tar.gz和redis-5.0.4.tar.gz在Linux上离线安装Redis 5.0.4。 首先,我们来看依赖文件: 1. **gcc-c++.tar.gz**:这是GNU编译器集合的C++部分,用于编译...
描述中的"A C++ Redis client"进一步确认了这个库的目标,即为C++开发者提供一个工具,使他们能够连接到Redis服务器并执行常见的数据操作。客户端通常会处理网络通信细节,如TCP连接建立、序列化和反序列化命令与...
5. **编译与链接**:执行编译操作,VS会生成.lib静态库文件,这便是你需要的C++库。同时,hiredis的头文件(.h)将用于编写与Redis交互的C++代码。 6. **测试与使用**:将生成的.lib文件添加到你的C++项目链接器的...