一、安装redis数据库

1.下载redis的压缩包

wget https://download.redis.io/releases/redis-6.0.5.tar.g

2.解压缩redis压缩包,一般就在当前路径

tar -zvxf redis-6.0.5.tar.gz -C /usr/local/redis

方便找我把它解压缩在/usr/local/redis,如果没有redis文件夹先到cd  /usr/local/下使用

mkdir redis创建一个

    3.跳转到解压的redis-6.0.5目录下执行

    cd /usr/local/redis/redis-6.0.5

    make 指令进行编译

    make PREFIX=/usr/local/redis install  //进行安装

    完成之后会生成一个bin目录下有redis服务端与客户端

    4.运行redis服务器

    ./redis-server

    CTL+C 关闭服务器

    5.运行redis客户端

    ./redis-cli

    CTL+C 退出

    6.设为守护进程

    我们更多希望它在后台自动运行因此会修改它的配置文件

    vi  /usr/local/redis/redis-6.0.5/redis.conf

    将这个位置的no改为yes 保存退出即可

    7.启动redis

    cd /usr/local/redis/bin   回到bin目录下

     ./redis-server ../redis-6.0.5/redis.conf

    ps aux | grep redis-server  //查看它所在运行的进程

    二、配置VS编译环境

    #include <hiredis/hiredis.h> //redis的头文件

    但是会爆红,原因是我们没有安装这个文件库

    1.安装hiredis库

    sudo apt install libhiredis-dev

    2.查找到库的头文件与驱动文件的位置

    dpkg -L libhiredis-dev | grep '\.h$'   //头文件

    dpkg -L libhiredis-dev | grep '\.so$'  //驱动文件

    3.VS配置项目的属性

    常规处附加包含目录添加头文件所在的路径

    /usr/include/hiredis/

    /usr/include/hiredis/adapters/

    输入块写入驱动文件

    三、Redis数据库的封装

    头文件:RedisConn.h

    #pragma once
    #include <hiredis/hiredis.h>
    #include<iostream>
    #include<string>using namespace std;
    class RedisConn
    {
    public:static RedisConn* redisConn;//确保只有一个redis连接类static RedisConn* getInstance();//初始化单例bool RedisConnect();//连接数据库RedisConn* getRedisConn() const;//获取连接对象bool set_key(string key, string value);//写入键值对string get_key(string key) const;//拿取键对应的值
    private:RedisConn();~RedisConn();redisContext* conn;//连接对象
    };

    cpp文件:RedisConn.cpp

    #include "RedisConn.h"RedisConn* RedisConn::redisConn = nullptr;//设置为懒汉式单例模式:避免重复创建实例浪费资源
    RedisConn* RedisConn::getInstance()
    {if (redisConn == nullptr){redisConn = new RedisConn();}return redisConn;
    }bool RedisConn::RedisConnect()
    {conn = redisConnect("127.0.0.1", 6379);if (conn->err){cout << "连接失败" << conn->errstr << endl;return false;}return true;
    }RedisConn::RedisConn()
    {if (RedisConnect())//连接数据库{cout << "redis succeful" << endl;}
    }RedisConn::~RedisConn()
    {redisFree(conn);//关闭数据库//释放资源delete conn;delete redisConn;
    }RedisConn* RedisConn::getRedisConn() const
    {return redisConn;
    }bool RedisConn::set_key(string key, string value)
    {redisReply* reply = nullptr;// 使用 redisCommand 的参数化版本更安全reply = (redisReply*)redisCommand(conn, "SET %s %s EX 180", key.c_str(), value.c_str());//判断执行是否成功if (!reply||reply->type == REDIS_REPLY_ERROR) {cout<< "Redis error: " << reply->str << endl;freeReplyObject(reply);return false;}freeReplyObject(reply);//释放指针return true;
    }string RedisConn::get_key(string key) const
    {string value;redisReply* reply = nullptr;reply = (redisReply*)redisCommand(conn, "GET %s", key.c_str());value = reply->str;//拿取值freeReplyObject(reply);//释放指针return value;
    }

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

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

    相关文章

    C++23 已移除特性解析

    文章目录 引言C23 已移除特性介绍1. 垃圾收集的支持和基于可达性的泄漏检测&#xff08;P2186R2&#xff09;背景与原理存在的问题移除的影响 2. 混合宽字符串字面量拼接非良构&#xff08;P2201R1&#xff09;宽字符串编码概述混合拼接的问题示例分析移除的意义 3. 不可编码宽…

    Cloudflare

    Cloudflare 是一个网络基础设施和网站安全服务提供商&#xff0c;它的主要作用是让网站 更快、更安全、更可靠。简单来说&#xff0c;它是一个“护盾 加速器”。 &#x1f9e9; Cloudflare 的主要功能&#xff1a; 1. &#x1f680; 加速网站访问&#xff08;CDN&#xff09…

    Spring Boot启动慢?Redis缓存击穿?Kafka消费堆积?——Java后端常见问题排查实战

    Spring Boot启动慢&#xff1f;Redis缓存击穿&#xff1f;Kafka消费堆积&#xff1f;——Java后端常见问题排查实战 引言 Java后端系统因其丰富的技术栈和复杂的业务逻辑&#xff0c;常常面临启动延迟、性能瓶颈、异常错误等多种挑战。从核心语言、Web框架到分布式微服务及缓…

    数字人引领政务新风尚:智能设备助力政务服务

    在信息技术飞速发展的今天&#xff0c;政府机构不断探索提升服务效率和改善服务质量的新途径。实时交互数字人在政务服务中的应用正成为一大亮点&#xff0c;通过将“数字公务员”植入各种横屏智能设备中&#xff0c;为民众办理业务提供全程辅助。这种创新不仅优化了政务大厅的…

    ToolsSet之:十六进制及二进制编辑运算工具

    ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用&#xff0c;应用基本功能介绍可以查看以下文章&#xff1a; Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Number菜单下的Hex Operate工具可以进…

    DSP处理数字信号做什么用的?

    DSP&#xff08;数字信号处理器&#xff09;的核心任务是高效、实时地处理数字信号&#xff0c;通过专用硬件架构和算法优化&#xff0c;完成对信号的转换、增强、分析和控制。以下是DSP处理数字信号的主要用途及典型场景&#xff1a; 1. 信号增强与优化 降噪&#xff08;Noise…

    电脑如何保养才能用得更久

    在这个数字化的时代&#xff0c;电脑已经成为了我们生活和工作中不可或缺的伙伴。无论是处理工作文档、追剧娱乐&#xff0c;还是进行创意设计&#xff0c;电脑都发挥着至关重要的作用。那么&#xff0c;如何让我们的电脑“健康长寿”&#xff0c;陪伴我们更久呢&#xff1f;今…

    设计模式-监听者模式

    文章目录 监听者模式 监听者模式 监听器模式指的是事件源经过事件的封装传给监听器&#xff0c;当事件源触发事件之后&#xff0c;监听器收到事件的通知并执行事件回调方法。 -监听者观察者概念定义当范围对象的状态发生变化时&#xff0c;服务器自动调用监听器对象中的方法来…

    小程序33-列表渲染

    列表渲染 就是指通过循环遍历一个数组或对象&#xff0c;将其中的每个元素渲染到页面上 在组件上使用 wx:for 属性绑定一个数组或对象&#xff0c;既可使用每一项数据重复渲染当前组件 每一项的变量名默认为item&#xff0c;下标变量名默认为index 在使用 wx:for进行遍历的时候…

    [ Qt ] | QRadioButton和QCheckBox的使用

    目录 QRadioButton 常用属性 clicked(bool)信号、pressed信号、released信号 小项目 QRadioButton QRadioButton是一个单选按钮&#xff0c;也是继承自QAbstractButton(继承自QWidget) 常用属性 checkable 是否能选中 checked 是否已经被选中 autoExclusive 是否排…

    [网页五子棋][匹配模式]创建房间类、房间管理器、验证匹配功能,匹配模式小结

    文章目录 创建房间类创建房间类实现房间管理器 实现匹配器(3)验证匹配功能问题&#xff1a;匹配按钮不改变验证多开 小结 创建房间类 LOL&#xff0c;通过匹配的方式&#xff0c;自动给你加入到一个房间&#xff0c;也可手动创建游戏房间 这一局游戏&#xff0c;进行的“场所…

    Apifox 5 月产品更新|数据模型支持查看「引用资源」、调试 AI 接口可实时预览 Markdown、性能优化

    Apifox 新版本上线啦&#xff01; 看看本次版本更新主要涵盖的重点内容&#xff0c;有没有你所关注的功能特性&#xff1a; 自动解析 JSON 参数名和参数值调试 AI 接口时&#xff0c;可预览 Markdown 格式的内容性能优化&#xff1a;新增「实验性功能」选项 使用独立进程执行…

    Spring MVC 框架

    目录 1.MVC的定义 2.SpringMVC的实际应用 &#xff08;1&#xff09;建立连接 1.RequestMapping注解介绍 2.RequestMapping注解的请求方式 GET请求&#xff1a; POST请求&#xff1a; 指定GET/POST方法类型&#xff1a; &#xff08;2&#xff09;请求 传递参数 1.传…

    基于RK3568/RK3588/全志H3/飞腾芯片/音视频通话程序/语音对讲/视频对讲/实时性好/极低延迟

    一、前言说明 近期收到几个需求都是做音视频通话&#xff0c;很多人会选择用webrtc的方案&#xff0c;这个当然是个不错的方案&#xff0c;但是依赖的东西太多&#xff0c;而且相关组件代码量很大&#xff0c;开发难度大。所以最终选择自己属性的方案&#xff0c;那就是推流拉…

    AI+爆款文案,提示词脚本 ——卫朋

    目录 简介 提示词 作者简介 简介 用好AI的前提是脑子里面要有框架。 AI就像是一个刚出生的小孩&#xff0c;没有判断力&#xff0c;疯狂接收世界上的各类信息。 如果没有从小的规则框架约束、没有道德约束&#xff0c;最终的结果就一定是混乱无序的。 AI也是一样&#x…

    芯片:数字时代的算力引擎——鲲鹏、升腾、海光、Intel 全景解析

    在大模型爆炸的时代&#xff0c;芯片如同现代文明的“数字心脏”&#xff0c;驱动着从智能手机、数据中心到人工智能和超级计算的每一个关键进程。在这场算力竞赛中&#xff0c;华为鲲鹏、升腾、海光以及行业巨头Intel各自扮演着独特而至关重要的角色。本文将深入解析这些核心算…

    传输层协议TCP(上)

    上一篇https://blog.csdn.net/Small_entreprene/article/details/148143494?fromshareblogdetail&sharetypeblogdetail&sharerId148143494&sharereferPC&sharesourceSmall_entreprene&sharefromfrom_link 上文学习了传输层的协议之一UDP&#xff0c;接下来…

    关于ios点击分享自动复制到粘贴板的问题

    前言 Android 系统没有什么特别的要求&#xff0c;实现这个也比较容易。但ios在某些情况下就会出现问题。 如果ios是点击之后&#xff0c;请求接口&#xff0c;再把接口的内容赋值给粘贴板肯定行不通&#xff0c;会被ios系统拦截&#xff0c;导致赋值失败或者赋值为空。建议使…

    SAP Business One:无锡哲讯科技助力中小企业数字化转型的智慧之选

    数字化转型&#xff0c;中小企业的必经之路 在当今竞争激烈的商业环境中&#xff0c;数字化转型已不再是大型企业的专利&#xff0c;越来越多的中小企业开始寻求高效、灵活的管理系统来优化业务流程、提升运营效率。作为全球领先的企业管理软件&#xff0c;SAP Business One…

    【孙悟空喝水】2022-2-7

    缘由C编程问题求解:9634: 孙悟空喝水-编程语言-CSDN问答 void 孙悟空喝水() {//缘由https://ask.csdn.net/questions/7639865?spm1005.2025.3001.5141int x 2&#xff0c; n 0; double s 0, ss 0;std::cin >> n;while ((int)s < n)s 1.0 / x, ss (x - 1.0) / …