Cmakelist.txt之Linux-redis配置

1.cmakelist.txt

cmake_minimum_required(VERSION 3.16)
​
project(redis_linux_test LANGUAGES C)
​
​
​
add_executable(redis_linux_test main.c)
​
# 设置hiredis库的头文件路径和库文件路径
set(Hiredis_INCLUDE_DIR /usr/local/include/hiredis)
set(Hiredis_LIBRARY_DIR /usr/local/lib)
# 将hiredis的头文件路径添加到包含路径
include_directories(${Hiredis_INCLUDE_DIR})
# 将hiredis的库文件路径添加到库搜索路径
link_directories(${Hiredis_LIBRARY_DIR})
# 链接hiredis库到可执行文件
target_link_libraries(redis_linux_test hiredis)
​
​
include(GNUInstallDirs)
install(TARGETS redis_linux_testLIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

2.测试代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <hiredis/hiredis.h>int main()
{// 创建Redis连接redisContext *c = redisConnect("192.168.127.128", 6379);if (c == NULL) {// 如果无法分配redis上下文,直接报错并退出printf("Can't allocate redis context\n");return 1;} else if (c->err) {// 如果连接有错误,打印错误信息并释放上下文,然后退出printf("Error: %s\n", c->errstr);redisFree(c);return 1;} else {// 连接成功时打印消息printf("Successfully connected to Redis server\n");}// 切换到数据库6redisReply *reply;reply = redisCommand(c, "SELECT 6");if (reply == NULL) {printf("Error executing SELECT command\n");redisFree(c);return 1;} else if (reply->type == REDIS_REPLY_ERROR) {printf("Error reply: %s\n", reply->str);freeReplyObject(reply);redisFree(c);return 1;}freeReplyObject(reply);// 插入一些数据,例如插入一个键值对 "name": "John"reply = redisCommand(c, "SET name John");if (reply == NULL) {printf("Error executing SET command\n");redisFree(c);return 1;} else if (reply->type == REDIS_REPLY_ERROR) {printf("Error reply: %s\n", reply->str);freeReplyObject(reply);redisFree(c);return 1;}freeReplyObject(reply);// 可以继续插入更多数据reply = redisCommand(c, "SET age 30");if (reply == NULL) {printf("Error executing SET command\n");redisFree(c);return 1;} else if (reply->type == REDIS_REPLY_ERROR) {printf("Error reply: %s\n", reply->str);freeReplyObject(reply);redisFree(c);return 1;}freeReplyObject(reply);redisFree(c);return 0;
}

3.结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity小:Unity WebGL 嵌入前端网页中的iframe并实现双向通信

可以使用 Unity 的 SendMessage 方法和 JavaScript 的 postMessage 方法来实现。以下是一个基本的步骤指南&#xff1a; 1. 在 Unity 中设置 WebGL 项目 首先&#xff0c;你需要在 Unity 中构建一个 WebGL 项目&#xff1a; 打开 Unity 项目。选择 File -> Build Setting…

c ++零基础可视化——vector

c 零基础可视化——vector 初始化 vector<int> v0(5); // 0 0 0 0 0 vector<int> v1(5, 1); // 1 1 1 1 1 vector<int> v2{1, 2, 3} // 1 2 3 vector<int> v3(v1); // 1 1 1 1 1 vector<vector<int>> v4(2, vect…

基于Qt/C++/Opencv实现的一个视频中二维码解析软件

本文详细讲解了如何利用 Qt 和 OpenCV 实现一个可从视频和图片中检测二维码的软件。代码实现了视频解码、多线程处理和界面更新等功能&#xff0c;是一个典型的跨线程图像处理项目。以下分模块对代码进行解析。 一、项目的整体结构 项目分为以下几部分&#xff1a; 主窗口 (M…

常见的 git 提交备注类型

在 Git 提交中&#xff0c;常见的提交备注&#xff08;commit message&#xff09;遵循一定的约定&#xff0c;这有助于代码管理、版本控制以及团队协作。fix 和 feat 是常见的提交类型&#xff0c;下面是这两个的含义&#xff0c;以及其他常见的提交类型。 常见的 Git 提交备…

android-studio-4.2下载 、启动

下载 分享一个国内的android studio网站&#xff0c;可以下载SDK和一些Android studio开发工具 https://www.androiddevtools.cn/ 启动 JAVA_HOME/app/zulu17.48.15-ca-jdk17.0.10-linux_x64/ /app5/android-studio-home/android-studio-ide-201.6568795-linux-4.2C1/bin/s…

C语言练习.if.else语句.strstr

今天在做题之前&#xff0c;先介绍一下&#xff0c;新学到的库函数strstr 想要使用它&#xff0c;要先给它一个头文件<string.h> char *strstr(const char*str1,const char*str2); 首先&#xff1a;1.strstr的返回值是char&#xff0c;字符类型的。 2.两个实参&#xff…

丹摩|丹摩智算平台深度评测

1. 丹摩智算平台介绍 随着人工智能和大数据技术的快速发展&#xff0c;越来越多的智能计算平台涌现&#xff0c;为科研工作者和开发者提供高性能计算资源。丹摩智算平台作为其中的一员&#xff0c;定位于智能计算服务的提供者&#xff0c;支持从数据处理到模型训练的全流程操作…

美创科技入选2024数字政府解决方案提供商TOP100!

11月19日&#xff0c;国内专业咨询机构DBC德本咨询发布“2024数字政府解决方案提供商TOP100”榜单。美创科技凭借在政府数据安全领域多年的项目经验、技术优势与创新能力&#xff0c;入选收录。 作为专业数据安全产品与服务提供商&#xff0c;美创科技一直致力于为政府、金融、…

CSS —— 子绝父相

相对定位&#xff1a;占位&#xff1b;不脱标 绝对定位&#xff1a;不占位&#xff1b;脱标 希望子元素相对于父元素定位&#xff0c;又不希望父元素脱标&#xff08;父元素占位&#xff09; 子级是 绝对定位&#xff0c;不会占有位置&#xff0c; 可以放到父盒子里面的任何一…

废品买卖回收管理系统|Java|SSM|Vue| 前后端分离

【重要①】前后端源码万字文档部署文档 【重要②】正版源码有问题包售后 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【三】源码讲解视频 【其它服务】 【一】可以提供远程部署安装&#xff0c;包扩环境 【…

webpack配置和打包性能优化

文章目录 webpack基础配置loaderpluginloader 和 plugin 的区别devServer打包性能优化1、按需引入组件2、externals 属性3、给定文件匹配范围4、noParse 属性5、cacheDirectory 缓存属性6、happyPack 多个子进程并行 webpack基础配置 mode:development&#xff1a;设置webpack…

Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)

使用Flink编写代码&#xff0c;步骤非常固定&#xff0c;大概分为以下几步&#xff0c;只要牢牢抓住步骤&#xff0c;基本轻松拿下&#xff1a; 1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 DataStream API开发 //n…

构建高效在线教育:SpringBoot课程管理系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理在线课程管理系统的相关信息成为必然。开发…

【Redis_Day6】Hash类型

【Redis_Day6】Hash类型 Hash类型操作hash的命令hset&#xff1a;设置hash中指定的字段&#xff08;field&#xff09;的值&#xff08;value&#xff09;hsetnx&#xff1a;想hash中添加字段并设置值hget&#xff1a;获取hash中指定字段的值hexists&#xff1a;判断hash中是否…

elasticsearch的文档管理

2 json数据入门 json数据类型 基础数据类型 字符串&#xff0c;只要用双引号包裹的都是字符串类型。“嘻嘻”&#xff0c;“文勇”&#xff0c;“2024” 数字型&#xff0c;2024&#xff0c;3.1415926 布尔型&#xff0c;true 和 false 空值&#xff0c;null 高级数据类…

在SQLyog中导入和导出数据库

导入 假如我要导入一个xxx.sql&#xff0c;我就先创建一个叫做xxx的数据库。 然后右键点击导入、执行SQL脚本 选择要导入的数据库文件的位置&#xff0c;点击执行即可 注意&#xff1a; 导入之后记得刷新一下导出 选择你要导出的数据库 右键选择&#xff1a;备份/导出、…

详细教程-Linux上安装单机版的Hadoop

1、上传Hadoop安装包至linux并解压 tar -zxvf hadoop-2.6.0-cdh5.15.2.tar.gz 安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1u59OLTJctKmm9YVWr_F-Cg 提取码&#xff1a;0pfj 2、配置免密码登录 生成秘钥&#xff1a; ssh-keygen -t rsa -P 将秘钥写入认…

实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么

今天学Flink的关键技术–容错机制&#xff0c;用一些通俗的比喻来讲这个复杂的过程。参考自《离线和实时大数据开发实战》 需要先回顾昨天发的Flink关键概念 检查点&#xff08;checkpoint&#xff09; Flink容错机制的核心是分布式数据流和状态的快照&#xff0c;从而当分布…

Centos使用docker搭建Graylog日志平台

日志管理系统有很多&#xff0c;比如ELK,Graylog&#xff0c;LokiGrafanaPromtail 适用场景&#xff1a; 1.如果需求复杂&#xff0c;服务器资源不受限制&#xff0c;推荐使用ELK&#xff08;Logstash Elasticsearch Kibana&#xff09;方案&#xff1b; 2.如果需求仅是将…

小米xiaomi

文章目录 一、vector和list的区别&#xff1f;二、include 双引号和尖括号的区别&#xff1f;三、set的底层数据结构&#xff1f;四、set和multiset的区别&#xff1f;五、map和unordered_map的区别&#xff1f;六、虚函数和纯虚函数的区别&#xff1f;七、extern C有了解过吗&…