c连接redis

1、需要使用hiredis

下载地址:GitHub - redis/hiredis: Minimalistic C client for Redis >= 1.2

下载后需要执行cmake .和make命令编译,得到libhiredis.a和libhiredis.dylib

2、复制文件到项目或添加到主机/usr/local/include和lib目录下,再执行一个命令刷新一下头文件生效

需复制文件alloc.h、hiredis.h、read.h、sds.h及libhiredis.a

3、配置cmake文件

cmake_minimum_required(VERSION 3.21)
project(testc C)

set(CMAKE_C_STANDARD 99)

#添加头文件目录  (相当于gcc中-l参数,也相当于环境变量中增加路径到cplus_include_path变量的作用)
#语法:include_directories("/opt/……/extern/include") (相当于export CPLUS_INCLUDE_PATH=CPLUS_INCLUDE_PATH:$MATLAB/extern/include)
include_directories("//Users/sumengnan/CLionProjects/testc/include")

#需要链接的库文件目录 (相当于gcc命令中的-L选项作用,也相当于环境变量中增加LD_LIBRARY_PATH的路径的作用)
#语法:LINK_DIRECTORIES("/opt/……/bin") (相当于export LD_LIBRARY_PATH=LD_LIBRARY_PATH:$MATLAB/bin)
link_directories("/Users/sumengnan/CLionProjects/testc/lib")

#添加需要链接的库文件全路径(在add_executable之前,已过时,推荐target_link_libraries)
#语法:LINK_LIBRARIES("/opt/……/bin/liba.so") 或LINK_LIBRARIES("/opt/……/bin/liba.so" "/opt/……/bin/libb.so")
#link_libraries()


#引入另外的cmake文件
#include()

#打包成可执行文件
add_executable(testc main.c)
#打包成库文件
#add_library()

#----------------------------------

#设置要链接的库文件名称(以下集中写法都可以,需要写在add_executable后)
#语法:TARGET_LINK_LIBRARIES(myProject hello) 链接libhello.so库
#或TARGET_LINK_LIBRARIES(myProject libhello.a)
#或TARGET_LINK_LIBRARIES(myProject libhello.so)
#或TARGET_LINK_LIBRARIES(myProject -lhello)
target_link_libraries(testc libhiredis.a)

#设置要链接的库文件的全路径名称
#target_link_directories()

#指定可执行文件需要包含的头文件的路径
#target_include_directories()

4、redis操作代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "hiredis.h"

int main() {
    printf("Hello, World!\n");

    //连接redis
    redisContext *pContext = redisConnect("127.0.0.1", 6379);
    if(pContext==NULL){
        printf("pContext null!\n");
        exit(1);
    }
    if(pContext->err){
        printf("connection error:%s\n", pContext->errstr);
        exit(1);
    }
    // 密码验证
//    redisReply *pReply = (struct redisReply *) redisCommand(pContext, "AUTH %s","password");
//    printf("auth is %s\n", pReply->str);
//    freeReplyObject(pReply);

    //set方法
    redisReply *pReply = (struct redisReply *) redisCommand(pContext, "set 2 3");
    printf("pReply:%s\n",pReply->str);
    //释放reply对象
    freeReplyObject(pReply);

    //get方法
    pReply = (struct redisReply *) redisCommand(pContext, "get 1");
    printf("pReply:%s\n",pReply->str);
    //释放reply对象
    freeReplyObject(pReply);

    //释放连接
    redisFree(pContext);

    return 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fscan是一个C语言的文件读写函数,而Redis是一个基于内存的开源数据库系统。如果你想使用C语言连接Redis,可以使用hiredis这个RedisC语言客户端库。 以下是使用hiredis连接Redis的基本步骤: 1. 安装hiredis客户端库 在Linux系统中,可以使用以下命令安装: ``` sudo apt-get install libhiredis-dev ``` 在Windows系统中,可以从hiredis的GitHub页面下载源码,然后编译生成库文件。 2. 引入头文件 在你的C语言代码中,需要引入hiredis库的头文件: ```c #include <hiredis.h> ``` 3. 创建Redis连接 使用以下代码创建Redis连接: ```c redisContext *c = redisConnect("127.0.0.1", 6379); if (c == NULL || c->err) { if (c) { printf("Error: %s\n", c->errstr); redisFree(c); } else { printf("Can't allocate redis context\n"); } exit(1); } ``` 这里创建了一个连接到本地的Redis实例,端口号为6379。如果连接失败,会输出错误信息并退出程序。 4. 执行Redis命令 使用以下代码执行Redis命令: ```c redisReply *reply; reply = redisCommand(c,"SET %s %s", "key", "value"); printf("SET: %s\n", reply->str); freeReplyObject(reply); reply = redisCommand(c,"GET %s", "key"); printf("GET: %s\n", reply->str); freeReplyObject(reply); ``` 这里先使用SET命令设置了一个键值对,然后使用GET命令获取该键对应的值。执行完每个命令后,需要使用freeReplyObject函数释放reply对象。 5. 关闭Redis连接 在程序结束时,需要使用以下代码关闭Redis连接: ```c redisFree(c); ``` 以上就是使用hiredis连接Redis的基本步骤。在实际应用中,还可以使用其他hiredis提供的函数来执行更多的Redis命令。如果您有其他关于Redis连接的问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值