• Linux 下的hiredis的简单安装、测试*(转)


    上一章介绍的是如何安装Redis以及在Redis客户端上进行简单测试,但是我们一般安装完Redis之后,都是要结合编程语言对其进行应用的,hiredis是redis开源库对外发布的客户端API包,这一章将讲解如何安装hiredis以及编写简单的测试程序进行测试。

    首先进入hiredis官网进行包的下载:

    进入到下载页面,点击最新版本的tar.gz包进行下载,接下来的过程和安装Redis完全一样

    1、解压:tar -zxvf hiredis-0.13.3.tar.gz

    2、编译:make

    3、安装:make install

    4、新建一个文件夹RedisTest:mkdir RedisTest

    5、新建一个RedisTest.c文件:vim RedisTest.c

    6、在此文件中输入相关代码:

    #include <stdio.h>
    #include <hiredis/hiredis.h>
    int main()
    {
         redisContext *conn  = redisConnect("127.0.0.1",6379);
         if(conn != NULL && conn->err)
         {
             printf("connection error: %s
    ",conn->errstr);
             return 0;
         }
         redisReply *reply = (redisReply*)redisCommand(conn,"set foo 1234");
         freeReplyObject(reply);
     
         reply = redisCommand(conn,"get foo");
         printf("%s
    ",reply->str);
         freeReplyObject(reply);
     
         redisFree(conn);
         return 0;
    }
    

      

    官网上面也有较为详细的教程:

    执行编译命令:gcc -o  RedisTest RedisTest.c -L/usr/local/lib/ -lhiredis

    得到可运行文件RedisTest,输入指令:./RedisTest,运行该文件得到结果:1234

    如果遇到:error while loading shared libraries: libhiredis.so.0.13: cannot open shared object file: No such file or directory这样的错误,即动态库无法加载,我们可以这样做:

    1、在/etc/ld.so.conf.d/目录下添加usr-libs.conf文件:vim /etc/ld.so.conf.d/usr-libs.conf

    2、在文件中添加内容:/usr/local/lib

    3、退出文本编译::wq

    4、更新动态库配置:/sbin/ldconfig

    补:如果是在eclipse平台进行代码编译与运行,那么上述测试代码在编译阶段可能出现如下错误:

    只要把代码:

    reply = redisCommand(conn,"get foo");

    替换成:

    reply = (redisReply*)redisCommand(conn,"get foo");

    就可以了

    如果出现如下错误:

    undefined reference to `redisConnect'
    undefined reference to `redisCommand'
    undefined reference to `freeReplyObject'
    undefined reference to `redisCommand'
    undefined reference to `freeReplyObject'
    undefined reference to `redisFree'
    

      

    则右键项目->Properties->C/C++ Build->Settings->Tool Settings->Libraries,添加Libraries:

    在弹出窗口输入hiredis并确定

    操作完成之后,目录下出现hiredis库:

    重新编译之后,编译成功:

    运行得到结果:1234

  • 相关阅读:
    关于进程间通信
    ipc (进程间通信
    为什么需要进程间通信??
    重载、重写、覆盖
    conerstone代码回滚
    重载、重写、符号冲突、扩展
    UICollectionView(一)基本概念
    UICollectionViewFlowLayout & UICollectionViewDelegateFlowLayout
    UICollectionView框架总结
    UICollectionView
  • 原文地址:https://www.cnblogs.com/sandea/p/9592639.html
Copyright © 2020-2023  润新知