当前位置: 首页 > news >正文

【C++】开源:Redis数据库配置与使用

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍Redis数据库配置与使用。
无专精则不能成,无涉猎则不能通。。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • :smirk:1. 项目介绍
    • :blush:2. 环境配置
    • :satisfied:3. 使用说明

😏1. 项目介绍

项目Github地址:https://github.com/redis/redis

Redis(Remote Dictionary Server)是一款开源的内存数据结构存储系统,它提供了一个键值对存储模型,其中的键可以包括字符串、哈希、列表、集合和有序集合等数据类型。它支持持久化、主从复制、集群和事务等功能。

以下是一些关键特性和用途:

1.高性能:Redis将数据存储在内存中,因此可以实现非常高的读写性能。它使用单线程模型和异步I/O操作来实现高效的处理请求。

2.丰富的数据结构:Redis不仅仅支持简单的字符串键值对存储,还提供了各种数据结构,如哈希表(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)。这使得Redis非常适合于在内存中处理各种类型的数据。

3.持久化:Redis提供了两种方式的持久化机制,即RDB(Redis数据库文件)和AOF(Append-only File)。RDB通过将数据集快照写入磁盘,以便在重新启动时重新加载数据。而AOF则通过记录所有写操作来实现持久化。

4.主从复制:Redis支持主从复制,可以将一个Redis实例配置为主服务器,而其他实例作为从服务器。主服务器上的写操作会被自动地复制到所有从服务器上,从而实现数据的冗余备份和负载均衡。

5.发布与订阅:Redis支持发布与订阅模式,允许客户端订阅一个或多个频道,以接收特定类型的消息。这使得Redis非常适合于构建实时应用程序、消息队列和聊天系统等。

6.事务支持:Redis支持事务操作,可以将多个命令打包成一个事务进行执行。通过MULTI、EXEC、DISCARD和WATCH等命令,可以实现原子性的提交或回滚多个命令。

7.缓存:由于Redis的快速读写能力和丰富的数据结构,它经常被用作缓存层。将经常访问的数据存储在Redis中,可以极大地提升应用程序的性能和响应时间。

总之,Redis是一款功能强大且灵活的内存数据存储系统,适用于处理高速读写和实时数据处理的应用场景,例如缓存、会话存储、计数器、排行榜和消息队列等。

😊2. 环境配置

下面进行安装运行:

# ubuntu安装
sudo apt install redis-server
# 检查运行状态
sudo systemctl status redis-server
# 测试服务器是否正常
redis-cli ping (可以通过redis-cli进入客户端)
# 配置远程连接
sudo gedit /etc/redis/redis.conf
将 bind 127.0.0.1 ::1 改为 bind 0.0.0.0
# 设置密码
找到# requirepass foobared 改为 requirepass 自己的密码
sudo systemctl redis-server restart

服务端配置完成后,可以安装图形化工具Redis desktop manager便于管理。

可通过ssh远程连接到远端的redis数据库。

在这里插入图片描述

😆3. 使用说明

首先安装redis c++依赖:sudo apt-get install libhiredis-dev

下面是一个数据库操作示例:

#include <iostream>
#include <hiredis/hiredis.h>int main()
{// 连接 Redis 服务器redisContext *redis = redisConnect("127.0.0.1", 6379);// 检查连接是否成功if (redis == NULL || redis->err){std::cout << "无法连接到 Redis 服务器:" << redis->errstr << std::endl;return 1;}// 执行 AUTH 命令,提供密码redisReply *reply = (redisReply *)redisCommand(redis, "AUTH password");// 检查认证是否成功if (reply == NULL || reply->type == REDIS_REPLY_ERROR){std::cout << "Redis 认证失败:" << reply->str << std::endl;freeReplyObject(reply);redisFree(redis);return 1;}std::cout << "Redis 认证成功!" << std::endl;freeReplyObject(reply);// 执行 SET 命令reply = (redisReply *)redisCommand(redis, "SET key1 value1");std::cout << "SET 命令执行结果:" << reply->str << std::endl;freeReplyObject(reply);// 执行 GET 命令reply = (redisReply *)redisCommand(redis, "GET key1");std::cout << "GET 命令执行结果:" << reply->str << std::endl;freeReplyObject(reply);// 关闭连接redisFree(redis);return 0;
}

编译运行:

g++ main.cpp -o redis_example -lhiredis
Redis 认证成功!
SET 命令执行结果:OK
GET 命令执行结果:value1

在这里插入图片描述

以上。

相关文章:

【C++】开源:Redis数据库配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Redis数据库配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…...

TCP/IP网络编程 第二十四章:制作HTTP服务器端

实现简单的Web服务器端 现在开始在HTTP协议的基础上编写Web服务器端。先给出Windows平台下的示例&#xff0c;再给出Linux下的示例。在这里我假设各位都有了有关HTTP的知识&#xff0c;如果不知道HTTP协议的具体内容可以参考的往期博客&#xff0c;有了这些基础就不难分析源代…...

React 前端应用中快速实践 OpenTelemetry 云原生可观测性(SigNoz/K8S)

OpenTelemetry 可用于跟踪 React 应用程序的性能问题和错误。您可以跟踪从前端 web 应用程序到下游服务的用户请求。OpenTelemetry 是云原生计算基金会(CNCF)下的一个开源项目&#xff0c;旨在标准化遥测数据的生成和收集。已成为下一代可观测平台的事实标准。 React(也称为 Re…...

Linux 多线程并发Socket服务端的实现( 11 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everythi…...

2.7. Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?

Java 泛型&#xff08;generics&#xff09;是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制&#xff0c;该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型&#xff0c;也就是说所操作的数据类型被指定为一个参数。 Java 的泛型是伪泛型&am…...

单例模式与构造器模式

单例模式 1、是什么 单例模式&#xff08;Singleton Pattern&#xff09;&#xff1a;创建型模式&#xff0c;提供了一种创建对象的最佳方式&#xff0c;这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建 在应用程序运…...

SQL力扣练习(七)

1.行程和用户(262) 表&#xff1a;Trips ----------------------- | Column Name | Type | ----------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | reques…...

C语言假期作业 DAY 05

题目 一、选择题 1、如下程序的功能是&#xff08; &#xff09; #include <stdio.h> int main() { char ch[80] "123abcdEFG*&"; int j; puts(ch); for(j 0; ch[j] ! \0; j) if(ch[j] > A && ch[j] < Z) ch[j] ch[j] e - E; puts(ch)…...

php-golang-rpc使用roadrunner-server/goridge/v3/pkg/rpc和php的spiral/goridge3.2实践

golang代码&#xff1a; go get github.com/roadrunner-server/goridge/v3 package main import ( "fmt" "net" "net/rpc" goridgeRpc "github.com/roadrunner-server/goridge/v3/pkg/rpc" ) type App struct{} func (s *App) Hi(na…...

API常用签名验证方法(PHP实现)

使用场景 现在越来越多的项目使用的前后端分离的模式进行开发&#xff0c;后端开发人员使用API接口传递数据给到前端开发进行处理展示&#xff0c;在一些比较重要的修改数据接口&#xff0c;涉及金钱&#xff0c;用户信息等修改的接口如果不做防护验证&#xff0c;经常容易被人…...

kotlin高阶函数

kotlin高阶函数 函数式API:一个函数的入参数为Lambda表达式的函数就是函数式api 例子: public inline fun <T> Iterable<T>.filter(predicate: (T) -> Boolean): List<T> {return filterTo(ArrayList<T>(), predicate) }上面这段函数: 首先这个函…...

kotlin list集合树

kotlin list集合树 记录一下 data class AreaSchemaManageDto(var id: Long? null,var pid: Long? null,var label: String? null,var children: MutableList<AreaSchemaManageDto>? null ) : Serializable { }逻辑 fun getAll(): List<AreaSchemaManageDto&g…...

基于Autoencoder自编码的64QAM星座图整形调制解调通信系统性能matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1星座图整形 4.2自编码器 4.3基于Autoencoder的星座图整形调制解调模型 4.4 实现过程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .…...

【Spring】Spring 总览

一、简单介绍一下 Spring Spring是一个全面的、企业应用开发的一站式解决方案&#xff0c;贯穿表现层、业务层、持久层&#xff0c;可以轻松和其他框架整合&#xff0c;具有轻量级、控制反转、面向切面、容器等特征。 轻量级 &#xff1a; 空间开销和时间开销都很轻量 控制反…...

微软、OpenAI用上“数据永动机” 合成数据是晨曦还是暮光?

微软、OpenAI、Cohere等公司已经开始测试使用合成数据来训练AI模型。Cohere首席执行官Aiden Gomez表示&#xff0c;合成数据可以适用于很多训练场景&#xff0c;只是目前尚未全面推广。 已有的&#xff08;通用&#xff09;数据资源似乎接近效能极限&#xff0c;开发人员认为&a…...

简单认识Redis 数据库的高可用

文章目录 一、Redis 高可用&#xff1a;1.简介&#xff1a;2、在Redis中实现高可用的技术 二、Redis持久化&#xff1a;1.持久化的功能&#xff1a;2.Redis 提供两种方式进行持久化&#xff1a; 三、RDB 持久化&#xff1a;1.简介&#xff1a;2.触发条件&#xff1a;4.启动时加…...

超级实用!,掌握这9个鲜为人知的CSS属性

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势&#xff0c;学习途径等等。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 快来免费体验ChatGpt plus版本的&#xff0c;我们出的钱 体验地…...

深圳国际新能源及智能网联汽车全产业博览会今年10月举办

7月25日&#xff0c;深圳市工业和信息化局与励展博览集团共同在深圳举办Automotive World China 2023深圳国际新能源及智能网联汽车全产业博览会&#xff08;简称“AWC 2023”&#xff09;全球推介启动大会&#xff0c;该博览会将于2023年10月11日-13日在深圳国际会展中心盛大举…...

【具有非线性反馈的LTI系统识别】针对反馈非线性的LTI系统,提供非线性辨识方案(SimulinkMatlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、Simulink仿真实现 &#x1f4a5;1 概述 本文为具有反馈非线性的LTI系统提供了一种非线性识别方案&#xff0c;这取决于输入和LTI系统输出。对于MEMS来说尤其如此&#…...

Stable diffusion 和 Midjourney 怎么选?

通过这段时间的摸索&#xff0c;我将和你探讨&#xff0c;对普通人来说&#xff0c;Stable diffusion 和 Midjourney 怎么选&#xff1f;最重要的是&#xff0c;学好影视后期制作对 AI 绘画创作有哪些帮助&#xff1f;反过来&#xff0c;AI 绘画对影视后期又有哪些帮助&#xf…...

c++网络编程

网络编程模型 c/s 模型&#xff1a;客户端服务器模型b/s 模型&#xff1a;浏览器服务器模型1.tcp网络流程 服务器流程&#xff1a; 1.创建套接字2.完善服务器网络信息结构体3.绑定服务器网络信息结构体4.让服务器处于监听状态5.accept阻塞等待客户端连接信号6.收发数据7.关闭套…...

【沁恒蓝牙mesh】数据收发接口与应用层模型传递

本文主要描述了沁恒蓝牙mesh SDK的蓝牙数据收发接口&#xff0c;以及应用层的回调函数解析以及模型传递 这里写目录标题 1. 数据收发接口1.1【发送数据】1.2 【数据接收】 2. 应用层模型分析 1. 数据收发接口 1.1【发送数据】 /*&#xff08;1&#xff09;接口1 */ /*接口一&…...

Java类关系之代理(代理模式)

在Java中&#xff0c;如果一个类需要使用另一个类的方法&#xff0c;我们可以使用继承的方式实现&#xff0c;那么问题来了&#xff0c;如果这个类恰恰在逻辑关系上不能使用继承怎么办呢&#xff1f;比如说&#xff0c;飞机和控制台这两个类&#xff0c;控制台的方法有上下左右…...

java: 无法访问redis.clients.jedis.JedisPoolConfig

问题描述: 在编译java springboot程序的时候报错 java: 无法访问redis.clients.jedis.JedisPoolConfig 找不到redis.clients.jedis.JedisPoolConfig的类文件 问题分析 该问题是由于找不到JedisPoolConfig包导致的,很可能是没有添加相关的依赖 问题解决 在pom文件中添加依赖项…...

基于java中学教务管理系统设计与实现

摘要 随着现代技术的不断发展&#xff0c;计算机已经深度的应用到了当下的各个行业之中&#xff0c;教育行业也不例外。计算机对教育行业中的教务管理等内容的帮助&#xff0c;使得教职工从传统的手工办公像计算机辅助阶段迈进&#xff0c;并且实现了非常好的发展。现在的学校在…...

vscode设置java -Xmx最大堆内存

如果在vscode中直接运行java程序&#xff0c;想要改下每次运行的最大堆内存&#xff0c;按照如下修改 一、vscode安装java插件 当然前提是vscode在应用管理中已经安装了java语言的插件&#xff0c;Debugger for Java,如下图所示 二、CommandShiftP打开配置搜索框 三、搜索…...

组件开发系列--Apache Commons Chain

一、前言 Commons-chain是apache commons中的一个子项目,主要被使用在"责任链"的场景中,struts中action的调用过程,就是使用了"chain"框架做支撑.如果你的项目中,也有基于此种场景的需求,可以考虑使用它. 在责任链模式里&#xff0c;很多对象由每一个对象对…...

60 # http 的基本概念

什么是 HTTP&#xff1f; 通常的网络是在 TCP/IP 协议族的基础上来运作的&#xff0c;HTTP 是一个子集。http 基于 tcp 的协议&#xff0c;在 tcp 的基础上增加了一些规范&#xff0c;就是 header&#xff0c;学习 http 就是学习每个 header 它有什么作用。 TCP/IP 协议族 协…...

云计算迎来中场战役,MaaS或将成为弯道超车“新赛点”

科技云报道原创。 没有人能预见未来&#xff0c;但我们可以因循常识&#xff0c;去捕捉技术创新演进的节奏韵脚。 2023年最火的风口莫过于大模型。 2022年底&#xff0c;由美国初创企业OpenAI开发的聊天应用ChatGPT引爆市场&#xff0c;生成式AI成为科技市场热点&#xff0c…...

最新基于Citespace、vosviewer、R语言的文献计量学可视化分析技术及全流程文献可视化SCI论文高效写作方法

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…...