Redis 环境安装与C++接口

- 安装redis

      wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
      tar -zvxf redis-2.4.17.tar.gz
      cd redis-2.4.17
      make
      sudo make install

- 安装hiredis

      wget https://github.com/antirez/hiredis/tarball/master
      tar xzvf master
      cd antirez-hiredis-0fff0f1
      make
      sudo make install

- 注意:
需要更新一下库的cache,因为程序启动时,会去/etc/ld.so.cache来查找所要用的库,不然会出现如下错误:error while loading shared libraries: libhiredis.so.0.10: cannot open shared object file: No such file or directory。
执行命令:

sudo ldconfig /usr/lib/
  • 开启redis-server
 redis-server 

- 测试代码

  • redis.h
/*
 * redis.h
 *
 *  Created on: Apr 1, 2016
 *      Author: liang
 */

#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("localhost", 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;
}
  • 命令行执行
 g++ redis.cpp -lhiredis -o redis
 ./redis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值