使用hiredis接口(Synchronous API)编写redis客户端

本文主要介绍hiredis的相关知识,以及使用hiredis接口(Synchronous API)编写redis客户端的方法。

1. hiredis概述

源自github上的描述:

Hiredis is a minimalistic C client library for the Redis database.

2. demo编写

使用hiredis的Synchronous API接口编写redis的客户端,通常需要调用以下几个函数:

redisContext *redisConnect(const char *ip, int port);          // 建立redis连接
void *redisCommand(redisContext *c, const char *format, ...);  // 执行redis命令
void freeReplyObject(void *reply);                             // 释放redis命令的返回内容

2.1 示例代码

一个完整的示例代码(hiredis_syncAPI.cpp)如下:

#include <iostream>
#include "hiredis/hiredis.h"

using namespace std;

int main()
{
    // 建立redis连接
    redisContext *c = redisConnect("192.168.213.133", 6379);
    if ((c == NULL) || (c->err))
    {
        if (c)
        {
            cout << "Error: " << c->errstr << endl;
            // 释放redis连接
            redisFree(c);
            return -1;
        }
        else
        {
            cout << "Can't allocate redis context." << endl;
            return -1;
        }
    }
    else
    {
        cout << "Connected to Redis." << endl;
    }

    redisReply *reply;

    // 添加数据
    reply = (redisReply *)redisCommand(c, "SET zs zhanshi");
    cout << "SET reply is: " << reply->str << endl;
    freeReplyObject(reply);

    // 查询数据
    reply = (redisReply *)redisCommand(c, "GET zs");
    cout << "GET reply is: " << reply->str << endl;
    freeReplyObject(reply);

    // 释放redis连接
    redisFree(c);
    
    return 0;
}

2.2 编译redis客户端

执行下面的命令编译上述代码,生成redis客户端:

g++ -o hiredis_syncAPI hiredis_syncAPI.cpp -lhiredis

2.3 测试redis客户端

2.3.1 启动redis服务器

我们在主机(IP地址为192.168.213.133)上打开redis服务器,该redis服务器监听对于192.168.213.133的连接,如下:

[root@node1 /opt/liitdar/hiredis]# redis-server /etc/redis.conf

2.3.2 启动redis客户端

在另外一台主机(IP地址为192.168.213.131)上运行前面编译生成的redis客户端“hiredis_syncAPI”,如下:

./hiredis_syncAPI

2.3.3 观察测试结果

正常情况下,我们编写的客户端能够连接到redis服务器,并执行指定的redis命令,如下:


如果运行redis客户端的终端中出现上述信息,说明我们的编写的redis客户端运行成功了。


猜你喜欢

转载自blog.csdn.net/liitdar/article/details/80277365
今日推荐