上山打老虎 发表于 2021-8-7 11:28:12

c连接redis

1. 安装启动redis
2. 安装redis c语言客户端
#include <stdio.h>
#include <stdlib.h>
#include <hiredis.h>

int main(int argc, char **argv) {
//    if (argc < 3) {
//      printf("usage: connRedis hostname port password\n");
//      return 1;
//    }
//    char *hostname = argv;
//    int port = atoi(argv);
//    char *password = argv;

    char *hostname = "127.0.0.1";
    int port = 6379;
    char *password = "";

    redisContext *conn;
    redisReply *reply;
    struct timeval timeout = {1, 500000};
    conn = redisConnectWithTimeout(hostname, port, timeout);
    // conn erro
    if (conn == NULL || conn->err) {
      if (conn) {
            printf("connection error %s\n", conn->errstr);
            exit(1);
      } else {
            printf("cannot alloc redis context\n");
            exit(1);
      }
    }

    // auth
    reply = redisCommand(conn, "AUTH %s", password);
    printf("auth is %s\n", reply->str);
    freeReplyObject(reply);

    // set
    reply = redisCommand(conn, "set %s %s", "name", "hello world");
    printf("set is %s\n", reply->str);
    freeReplyObject(reply);

    // get
    reply = redisCommand(conn, "get name");
    printf("name :%s\n", reply->str);
    freeReplyObject(reply);

    // free conn
    redisFree(conn);
    return 0;
}编译: gcc connRedis.c -o connRedis  -I /usr/local/include/hiredis -lhiredis
这里用clion + cmake编译,运行。需要在CMakeList.txt中添加动态库hiredis
link_libraries(hiredis)
add_executable(connRedis.c connRedis)
注意,link要放前面


文档来源:51CTO技术博客https://blog.51cto.com/u_2498536/3304165
页: [1]
查看完整版本: c连接redis