`
konin
  • 浏览: 10252 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

c++操作redis

 
阅读更多

相信做过服务端开发的应该都知道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数据库

    总的来说,C++操作Redis数据库涉及的主要知识点包括: 1. Redis的数据结构和命令:理解Redis提供的不同数据类型及其操作命令,如字符串、哈希表、列表、集合、有序集合等。 2. C++库选择:熟悉cpp-redis、hiredis等...

    C++ 操作Redis数据库VS2013测试Demo及redis sdk

    【C++操作Redis数据库】 Redis是一个高性能的键值对存储系统,常被用作数据库、缓存和消息中间件。在C++中与Redis交互,通常需要借助客户端库,这里提到的是`hiredis`,这是一个轻量级、高效的纯C语言实现的Redis...

    distr-redis-master.zip_C++操作Redis_redis c++_redis c++_redis分布式_

    在IT领域,Redis是一个广泛应用的高性能键值存储系统,常被用作数据库、缓存和消息中间件。...通过学习和理解这些代码,你将能够更好地理解和使用C++操作Redis的方法,特别是进行分布式操作时的策略和技巧。

    C++操作redis的客户端hiredis库

    **C++操作Redis的客户端Hiredis库** Redis是一个高性能的键值存储系统,常用于数据缓存、消息队列等场景。为了在C++应用中与Redis进行交互,我们通常会使用客户端库,其中Hiredis是一个轻量级、高效的选项。本文将...

    C++ Redis 客户端简单使用

    而C++作为一门强大的编程语言,与Redis的结合使得开发者能够高效地利用Redis的功能。本篇文章将深入探讨如何在C++中简单使用Redis客户端。 首先,为了在C++中与Redis进行交互,我们需要一个支持C++的Redis客户端库...

    C++基于redis的分布式锁redisAPI

    然而,这里提到的是"需要boost库",这可能是指使用`cpp_redis`库,它是一个基于Boost.Asio的C++ Redis客户端,提供了一种更面向对象的方式来操作Redis。 在`cpp_redis`库中,你可以通过创建客户端实例,然后调用...

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

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

    HiRedis Redis 数据库 C++ 操作,支持 Windows

    示例将Hiredis的操作封装为两个导出函数 Set 与 Get, 支持 Unicode 编码方式,支持二进制读写,有断线重连功能,可以使用静态库或动态库。 唯一实时Hiredis.dll 动态库方式。示例在 Win 10 VS2015 环境下编译通过。

    redis windows C++客户端例子

    此外,为了在Windows上运行Redis服务,你可能还需要下载并安装Redis for Windows,这是一个专门为Windows操作系统优化的版本。安装后,可以通过启动服务或者使用`redis-server.exe`命令行工具来运行Redis服务器。 ...

    C++封装Redis访问类

    本知识点将详细讨论如何在C++中封装Redis访问类,以及实现set和get操作。 首先,为了在C++中与Redis进行交互,我们需要一个客户端库。一个常用的C++ Redis客户端库是`rediscpp`或`hiredis`。这两个库提供了C++接口...

    C++使用redis的实例详解

    hiredis是redis数据库的C接口,目前只能在linux下使用,几个基本的函数就可以操作redis数据库了。  函数原型:redisContext *redisConnect(const char *ip, int port); 说明:该函数用来连接redis数据库,参数为...

    基于 hiredis c++调用redis 封装

    在IT行业中,Redis是一个高性能的键值存储系统,...通过封装这些操作,我们可以构建出易于使用的C++ Redis客户端,从而更好地集成Redis到我们的应用程序中。同时,了解Hiredis的底层机制有助于优化性能和处理异常情况。

    redis_helper c++ redis操作文件

    `redis_helper` 可能是为 C++ 开发的一个库或框架,方便程序员更便捷地进行 Redis 操作。 本文将深入探讨如何使用 C++ 与 Redis 进行交互,以及 `redis_helper` 在此过程中的作用。 首先,为了在 C++ 中与 Redis ...

    c++ hiredis redis-3.0 vs2013 src

    c++ hiredis redis-3.0 vs2013 src 压缩包内包含hiredis.lib等编译完成的lib文件. 更多教程 https://blog.csdn.net/wangningyu ​  Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多...

    vs2012 c++ redis

    在"RedisTestDemo"项目中,你可以按照这些步骤创建一个简单的C++应用程序,测试不同的Redis操作,如读写数据、执行事务、订阅和发布消息。这个项目实例将帮助你理解如何在VS2012中有效地使用C++与Redis进行通信,为...

    redis c++封装.zip

    在C++中对Redis进行封装,可以方便地在C++程序中利用Redis的功能,提高开发效率。以下是一些关于“Redis C++封装”的核心知识点: 1. **Redis数据结构**:Redis支持多种数据结构,如字符串(String)、哈希表(Hash...

    Linux离线安装redis所需的依赖:gcc-c++.tar.gz,gcc.tar.gz,redis-5.0.4.tar.gz

    这里我们将详细介绍如何使用给定的文件: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.zip

    描述中的"A C++ Redis client"进一步确认了这个库的目标,即为C++开发者提供一个工具,使他们能够连接到Redis服务器并执行常见的数据操作。客户端通常会处理网络通信细节,如TCP连接建立、序列化和反序列化命令与...

    windows 64位redis2.6 API C++库和头文件

    5. **编译与链接**:执行编译操作,VS会生成.lib静态库文件,这便是你需要的C++库。同时,hiredis的头文件(.h)将用于编写与Redis交互的C++代码。 6. **测试与使用**:将生成的.lib文件添加到你的C++项目链接器的...

Global site tag (gtag.js) - Google Analytics