c++ 连redis

hiredis包装redis数据库操作接口及测试(增删改查与连接 前两篇文章(redis安装配置与测试、redis的数据类型)总计了redis的一些基本知识,这里要进行一下redis的实践,先介绍一个实际应用场景,对于客户频繁需要查询的信息,可以将其放在redis内存数据库中,相当于一个缓存,每次查的时候先去redis内存数据库中去查询,如果查询不到再去oracle数据库中查询,这样提高了效率。 本文,使用redis的C与语操作接口hiredis包装了redi... 阅读详情

今天,本人来学习如何用C++来操作redis数据库。通过hiredis.h接口来实现,目前只能在Linux环境使用。

hiredis.h的下载地址为:https://github.com/redis/hiredis

主要包括如下四个方法

1. redisContext* redisConnect(const char *ip, int port)

该函数用来连接redis数据库, 两个参数分别是redis数据库的ip和端口,端口号一般为6379。类似的还提供了一个函数,供连接超时限定,即

redisContext* redisConnectWithTimeout(const char *ip, int port, timeval tv)。

2. void *redisCommand(redisContext *c, const char *format...)

该函数用于执行redis数据库中的命令,第一个参数为连接数据库返回的redisContext,剩下的参数为变参,如同C语言中的prinf()函数。此函数的返回值为void*,但是一般会强制转换为redisReply类型,以便做进一步的处理。

3. void freeReplyObject(void *reply)

释放redisCommand执行后返回的的redisReply所占用的内存。

4. void redisFree(redisContext *c)

释放redisConnect()所产生的连接。

接下来就是就让本人来教大家如何安装hiredis吧!

首先上网站下载hiredis.tar.gz包,解压后发现里面有一个Makefile文件,然后执行make进行编译,得到

接下来把libhiredis.so放到/usr/local/lib/中,把hiredis.h放到/usr/local/inlcude/hiredis/中。

或者直接用命令make install配置。如下图

接下来在程序中就可以直接用了。在程序中包含#include <hiredis/hiredis.h>即可。

为了操作方便,一般情况下我们需要写一个头文件类,这个类的方法根据自己项目需要适当添加。如下

代码: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("192.168.13.128", 6379))
 {
  printf("connect error!\n");
  return 0;
 }
 r->set("name", "Mayuyu");
 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

注意在g++和rm之前都是一个tab键。

在编译的时候需要加参数,假设文件为redis.cpp,那么编译命令如下

g++ redis.cpp -o redis -L/usr/local/lib/ -lhiredis

在执行的时候如果出现动态库无法加载,那么需要进行如下配置

在/etc/ld.so.conf.d/目录下新建文件usr-libs.conf,内容是:/usr/local/lib

如下图所示

然后使用命令/sbin/ldconfig更新一下配置即可。

C++连接redis数据库 C++连接redis 阅读详情

相关推荐

FFTW3库在Windows中的安装和使用

Windows 32位平台下载:FFTW Installation on Windows。

weixin_45397344的博客 914

redis使用c++ API 的hiredis连接详解

此代码实现了redis使用hiredis c接口开发,具体实现了string和list类型的存取,具体信息请看 https://blog.csdn.net/bwangk/article/details/83060374

AUTOSAR进阶图解==>AUTOSAR_SWS_ADCDriver

本文深入解析了AUTOSAR ADC Driver的架构设计和技术实现。主要内容包括:1)ADC Driver在AUTOSAR分层架构中的定位及核心功能;2)详细的模块架构设计,涵盖初始化管理、组转换管理、优先级处理等核心子组件;3)全面的配置模型说明,包括主配置类、通用配置、通道配置等关键数据结构;4)状态机机制和操作序列分析。通过分层设计和标准化接口,ADC Driver实现了硬件抽象和软件解耦,提供了良好的可移植性和可维护性。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 758

C++连接redis数据库(自学笔记)

一、本文仅做自学笔记用 本文内容参考redis使用c++ API 的hiredis连接详解 C++连接redis数据库需要用到hiredis头文件,最近因为写程序需要用到这方面的知识。上面博文内容较多,难以记忆,打算以这篇文章作为自学笔记,帮助自己理解记忆。 本文对一些函数、结构体等说明,只会挑比较基础、常用或者比较重要的部分,如果想全面了解记得去上面的链接翻看。 二、正文 1.简介 (1)使用redisConnect等函数与redis数据库建立连接连接信息存储在redisContext结构体中 (2)使

YoYuanZhizheng的博客 6979

C++ 连接redis数据库并处理数据(保姆级)

注:windows下对于cpp代码,将使用VS IDE配置环境,然后编译运行即可,而在linux下,则需要编写CMakeLists.txt去实现此代码的编译运行,若对cmakelist不了解,可参考下面的CMakeLists.txt文件。注:此部分为给对redis0基础的提供一定的帮助,已有相应基础的可跳过,为省略篇幅直入主题,在下方不提供具体内容,提供相应的链接,有需要自行查看。注:此文档为保姆级redis数据读取模板,将从redis的下载安装使用样例开始一步一步讲起。1.Hiredis库下载安装。

m0_47771636的博客 1540

cpp_redisC++ 11轻量级Redis客户端

cpp_redisC++ 11轻量级Redis客户端 【下载地址】cpp_redisC11轻量级Redis客户端 cpp_redis 是一个基于 C++ 11 的轻量级 Redis 客户端,专为高效、灵活的 Redis 操作而设计。它支持异步操作、线程安全、流水线、标记和高可用性,适用于多平台环境。虽然项目已不再维护,...

gitblog_06770的博客 823

【亲测免费】 C++ Redis客户端库: cpp_redis入门指南

--- ## 项目介绍 cpp_redis是一个高效、灵活且现代的C++ Redis客户端库,它旨在提供对Redis服务器的强大访问能力,支持多种操作模式和丰富的功能集。通过利用C++的现代特性,cpp_redis带来了简洁的API设计,使得集成Redis到您的C++应用程序变得更加简单直观。 [GitHub项目主页](https://github.com/cpp-redis/cpp_red...

gitblog_00031的博客 1257

【亲测免费】 探秘高效C++ Redis客户端:cpp_redis

在开发高并发、实时性的网络应用时,Redis作为一个高性能的键值存储系统,通常被广泛采用。然而,选择一个合适且高效的客户端库至关重要。今天,我们要介绍的是[cpp_redis](https),一个专为C++设计的轻量级、异步、多线程的Redis客户端。 ## 项目简介 cpp_redis是GitHub上的开源项目,其目标是提供一个简单易用、灵活且性能卓越的Redis客户端。它利用了C++11和...

gitblog_00013的博客 1066

终极C++ Redis客户端性能指南:cpp_redis如何实现10倍速度提升

作为C++开发者,你是否正在寻找一个高效、可靠的Redis客户端?cpp_redis正是你需要的解决方案!这个基于C++11的异步多平台轻量级Redis客户端,不仅支持同步操作,还具备管道化、哨兵和高可用性等关键特性。🚀 ## 为什么选择cpp_redis? cpp_redis的性能优势主要体现在以下几个方面: **零依赖设计** - cpp_redis没有任何外部依赖,唯一的系统要求就是

gitblog_00675的博客 952

cpp_redis完全指南:轻量级C++11 Redis客户端的终极入门教程

cpp_redis是一款基于C++11的轻量级Redis客户端,它支持异步操作、线程安全、无依赖、管道化和跨平台特性,是C++开发者与Redis数据库交互的理想选择。虽然该项目已不再维护,但对于学习和理解C++ Redis客户端开发仍具有重要价值。 ## 为什么选择cpp_redis? cpp_redis作为一款轻量级的Redis客户端,具有以下核心优势: - **C++11特性**:充分利

gitblog_00416的博客 980

推荐开源库:cpp_redis - 高效易用的C++ Redis客户端库

`cpp_redis` 是一个由C++11编写的轻量级异步多平台Redis客户端库。它不仅支持同步操作和管道(pipelining)功能,还具有哨兵(sentinel)支持和高可用性特性。虽然这个项目目前已经不再维护,但有一个活跃的fork位于[https://github.com/cpp-redis/cpp_redis](https://github.com/cpp-redis/cpp_redi...

gitblog_00100的博客 1024

【亲测免费】 redis-cpp:轻量级 C++ Redis 客户端库

redis-cpp:轻量级 C++ Redis 客户端库 项目介绍 redis-cpp 是一个基于 C++17 的轻量级 Redis 客户端库,支持执行 Redis 命令,并提供了管道(pipelines)和发布/订阅(publish/subscribe)模式的支持。这个库不仅易于使用,而且提供了扩展性,允许用户通过简单的接口访问 Redis,并且支持多种高级功能,如管道和发布/订阅模式。此外,r...

gitblog_00869的博客 574

cpp_redis社区贡献指南:如何为开源C++ Redis客户端贡献力量

cpp_redis是一个轻量级的C++11 Redis客户端,具有异步、线程安全、无依赖、支持管道操作和跨平台等特性。本文将详细介绍如何为这个优秀的开源项目贡献自己的力量,无论你是编程新手还是有经验的开发者,都能在这里找到适合自己的贡献方式。 ## 为什么选择贡献cpp_redis? 参与开源项目贡献不仅能提升自己的技术能力,还能为社区发展出一份力。cpp_redis作为一款高性能的C++ R

gitblog_00373的博客 737

C/C++编程:redis的cpp库

redis官方推荐的CPP库 hiredis 这里我们只用了hiredis 使用方法如下: linux安装Redis4 安装redis自带的hiredis: # cd {redis-src} # cd deps/hiredis/ # make # make install mkdir -p /usr/local/include/hiredis /usr/local/include/hiredis/adapters /usr/local/lib cp -pPR hiredis.h async.h rea

OceanStar的博客 8054

探索高效数据管理新境界:cpp_redisC++世界的轻量级Redis客户端

在高速发展的现代应用开发中,数据处理的效率与灵活性成为了决定项目成功与否的关键。因此,我们为您介绍一款强大的工具——`cpp_redis`,一个专为C++11设计的异步多平台轻量级Redis客户端,旨在简化与Redis数据库的交互过程,提升数据操作的效率。 ## 项目介绍 `cpp_redis`以其对C++11标准的支持,以及零依赖的设计理念脱颖而出,为开发者提供了一种简洁高效的解决方案来集成...

gitblog_00750的博客 343

终极C++ Redis客户端cpp_redis:异步、线程安全的轻量级解决方案

cpp_redis是一个C++11异步多平台轻量级Redis客户端,支持同步操作、管道化、哨兵和高可用性。作为一款高性能的C++ Redis客户端,它无需依赖其他库,仅需C++11环境即可运行,为开发者提供了便捷且高效的Redis交互方式。 [![cpp_redis架构图](https://raw.gitcode.com/gh_mirrors/cpp/cpp_redis/raw/201d96c5

gitblog_00685的博客 260

redisc++客户端cpp_redis代码分析

cpp_redis是一个基于c++11编写的redis客户端,比较简单,也比较强大,支持集群 本篇分析是基于一个简单的set命令来展开的 为了便于调试和查看代码运行轨迹,编译时用如下命令: cmake -DBUILD_EXAMPLES=true -DLOGGING_ENABLED=true . 这是查看完CMakefile.txt后得出的 cpp_redis使用了taco

deusomax的专栏 5428

如何快速上手cpp_redisC++11异步Redis客户端的完整入门指南

你是否正在为C++项目寻找一个高性能、易用的Redis客户端?cpp_redis正是你需要的终极解决方案!🚀 这个基于C++11的异步Redis客户端库提供了线程安全、零依赖、多平台支持以及管道化操作等强大功能,让Redis集成变得简单高效。 ## 什么是cpp_redis? cpp_redis是一个C++11异步多平台轻量级Redis客户端,支持同步操作、管道化、哨兵和高可用性。最棒的是它

gitblog_00137的博客 258

cpp_redis异步编程指南:如何利用C++11特性实现高性能Redis操作

cpp_redis是一个基于C++11的轻量级Redis客户端,它支持异步操作、线程安全、无依赖、管道化和跨平台特性。本指南将详细介绍如何利用cpp_redis的异步编程能力和C++11新特性来实现高性能的Redis操作,帮助开发者构建高效可靠的分布式应用。 ## 为什么选择cpp_redis进行异步Redis编程? cpp_redis作为一款现代化的C++ Redis客户端,具有以下核心优势

gitblog_00135的博客 454

多重网格法实例及matlab程序.zip_matlab多重网格_划分_多重网格_网格_网格法 matlab

多重网格法实例及matlab程序,多重网格法主程序 。

上一篇: boost::bind
下一篇: LibLinear(SVM包)使用说明
CSLDBLYDX
博客等级 码龄16年 3粉丝 99原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值