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

在 Ubuntu 上安装和配置 Redis

在 Ubuntu 上安装和配置 Redis,并使用发布-订阅(Pub/Sub)功能,可以按照以下步骤进行:

一、安装 Redis

1. 更新包列表

首先,更新本地的包列表以确保获取到最新的软件包信息:

sudo apt update

2. 安装 Redis

使用 apt 包管理器安装 Redis:

sudo apt install redis-server

3. 验证安装

安装完成后,可以通过以下命令检查 Redis 的运行状态:

sudo systemctl status redis

如果 Redis 正在运行,输出中会显示 active (running)

二、配置 Redis

Redis 的主要配置文件位于 /etc/redis/redis.conf。你可以根据需要进行修改。

1. 编辑配置文件

使用你喜欢的文本编辑器(如 nano)编辑配置文件:

sudo nano /etc/redis/redis.conf

2. 常见配置选项

  • 持久化设置

    • 默认情况下,Redis 使用 RDB 快照持久化。你可以根据需求启用或禁用。
  • 绑定地址和端口

    • 默认绑定到 127.0.0.1,如果需要远程访问,可以修改 bind 参数,但需注意安全性。
  • 设置密码

    • 为了增强安全性,可以设置访问密码。在配置文件中取消注释并设置 requirepass
      requirepass yourpassword
      
  • 后台运行

    • 默认情况下,Redis 以后台模式运行。确保 daemonize 设置为 yes
      daemonize yes
      

3. 重新启动 Redis 服务

在修改配置文件后,重新启动 Redis 服务以应用更改:

sudo systemctl restart redis

4. 设置开机自启

确保 Redis 在系统启动时自动启动:

sudo systemctl enable redis

三、测试 Redis 安装

使用 redis-cli 工具连接到 Redis 服务器并测试:

redis-cli

redis-cli 提示符下输入:

PING

如果一切正常,Redis 会回复:

PONG

四、Redis 发布-订阅(Pub/Sub)使用指南

Redis 的发布-订阅功能允许消息在客户端之间实时传递。以下是如何使用 redis-cli 进行发布和订阅的示例。

1. 订阅频道

打开一个终端窗口,运行以下命令订阅一个频道(例如 news):

redis-cli

redis-cli 提示符下输入:

SUBSCRIBE news

你将看到类似如下的输出,表示已成功订阅:

1) "subscribe"
2) "news"
3) (integer) 1

此终端将持续监听 news 频道的消息。

2. 发布消息

打开另一个终端窗口,运行以下命令发布消息到 news 频道:

redis-cli

redis-cli 提示符下输入:

PUBLISH news "Hello, Redis Pub/Sub!"

执行后,你将在订阅 news 频道的终端看到如下输出:

(integer) 1

而订阅终端将显示:

1) "message"
2) "news"
3) "Hello, Redis Pub/Sub!"

3. 示例:多个频道和消息

你可以订阅多个频道或使用通配符模式。例如,订阅所有以 news. 开头的频道:

PSUBSCRIBE news.*

发布到不同的频道:

PUBLISH news.sports "Sports news update"
PUBLISH news.weather "Weather forecast update"

订阅终端将接收到相应的消息。

4. 使用密码保护的 Redis 实例

如果 Redis 配置了访问密码,连接时需要提供密码。例如:

redis-cli -a yourpassword

或者在 redis-cli 内使用 AUTH 命令:

AUTH yourpassword

五、进阶使用

除了命令行工具,你还可以在各种编程语言中使用 Redis 的 Pub/Sub 功能。例如,使用 Python 的 redis 库:

import redis# 创建 Redis 连接
r = redis.Redis(host='localhost', port=6379, password='yourpassword')# 订阅频道
pubsub = r.pubsub()
pubsub.subscribe('news')# 监听消息
for message in pubsub.listen():if message['type'] == 'message':print(f"Received message: {message['data'].decode()}")

发布消息:

import redisr = redis.Redis(host='localhost', port=6379, password='yourpassword')
r.publish('news', 'Hello from Python!')

在 Ubuntu 上安装和配置用于 C++ 编程的 Redis 环境,主要包括以下几个步骤:

  1. 安装 Redis 服务器(如果尚未安装)
  2. 安装必要的依赖库
  3. 安装 C++ Redis 客户端库(如 redis-plus-plus
  4. 配置开发环境
  5. 编写和运行示例 C++ 程序

以下是详细的步骤说明:

六、安装 Redis 服务器

如果你还没有在 Ubuntu 上安装 Redis,可以参考之前的回答中的步骤进行安装。如果已经安装,可以跳过此部分。

七、安装必要的依赖库

在安装 redis-plus-plus 之前,需要先安装一些依赖库,包括 hiredisCMake 等。

1. 更新包列表

sudo apt update

2. 安装 hiredis

hiredis 是一个高性能的 Redis C 客户端库,是 redis-plus-plus 的依赖。

sudo apt install libhiredis-dev

3. 安装 CMake

CMake 是一个跨平台的构建系统,用于管理项目的构建过程。

sudo apt install cmake

4. 安装其他依赖

确保安装了编译 C++ 代码所需的编译器和工具:

sudo apt install build-essential

八、安装 redis-plus-plus(C++ Redis 客户端库)

redis-plus-plus 是一个功能丰富且易于使用的 C++ Redis 客户端库,基于 hiredis 构建。

1. 克隆 redis-plus-plus 仓库

git clone https://github.com/sewenew/redis-plus-plus.git
cd redis-plus-plus

2. 创建构建目录并编译

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
sudo make install

这将编译并安装 redis-plus-plus 库到系统中。

3. 更新库缓存

sudo ldconfig

九、配置开发环境

确保你的 C++ 项目能够找到 redis-plus-plushiredis 的头文件和库文件。下面以一个简单的 C++ 项目为例,演示如何配置和使用 redis-plus-plus

1. 创建项目目录

mkdir ~/redis_cpp_project
cd ~/redis_cpp_project

2. 编写示例代码

创建一个名为 main.cpp 的文件,内容如下:

#include <sw/redis++/redis++.h>
#include <iostream>using namespace sw::redis;int main() {try {// 连接到 Redis 服务器auto redis = Redis("tcp://127.0.0.1:6379");// 设置键值对redis.set("key", "Hello, Redis!");// 获取键的值auto val = redis.get("key");if (val) {std::cout << "key: " << *val << std::endl;} else {std::cout << "key does not exist." << std::endl;}// 发布-订阅示例// 订阅频道auto sub = redis.subscriber();sub.on_message([](std::string channel, std::string msg) {std::cout << "Received message from channel " << channel << ": " << msg << std::endl;});sub.subscribe("news");// 在另一个线程中监听消息std::thread([&sub]() {try {sub.consume();} catch (const std::exception &e) {std::cerr << "Subscriber error: " << e.what() << std::endl;}}).detach();// 发布消息redis.publish("news", "Hello from C++!");// 等待一段时间以确保消息被接收std::this_thread::sleep_for(std::chrono::seconds(1));} catch (const Error &err) {std::cerr << "Redis error: " << err.what() << std::endl;}return 0;
}

3. 编写 CMakeLists.txt

创建一个名为 CMakeLists.txt 的文件,内容如下:

cmake_minimum_required(VERSION 3.5)
project(RedisCppExample)set(CMAKE_CXX_STANDARD 14)find_package(hiredis REQUIRED)
find_package(redis++ REQUIRED)add_executable(redis_cpp_example main.cpp)target_link_libraries(redis_cpp_example PRIVATE redis++ hiredis::hiredis)

4. 构建项目

mkdir build
cd build
cmake ..
make

5. 运行示例程序

确保 Redis 服务器正在运行,然后执行:

./redis_cpp_example

你应该会看到类似如下的输出:

key: Hello, Redis!
Received message from channel news: Hello from C++!

十、进一步学习和参考

1. 官方文档

  • redis-plus-plus GitHub 仓库
  • hiredis GitHub 仓库

2. 示例代码

redis-plus-plus 仓库中包含多个示例代码,展示了如何使用不同的功能。可以参考这些示例来扩展你的项目。

3. 编程指南

  • 连接 Redis:如何配置连接选项,如密码验证、SSL 等。
  • 基本操作:字符串、哈希、列表、集合、有序集合等数据结构的操作。
  • 发布-订阅:高级用法,如模式订阅、消息过滤等。
  • 事务和管道:如何在 C++ 中使用 Redis 的事务和管道功能。
  • 异步操作:使用异步 API 以提高性能和响应性。

十一、常见问题排查

1. 编译错误

如果在编译过程中遇到找不到 redis-plus-plushiredis 的头文件或库文件,确保它们已正确安装,并且 CMakeLists.txt 中的 find_package 指令能够找到它们。

2. 运行时错误

如果运行时无法连接到 Redis 服务器,请确保 Redis 服务器正在运行,并且连接地址和端口正确。

3. 权限问题

如果 Redis 配置了访问密码,在连接时需要提供密码。例如:

auto redis = Redis("tcp://127.0.0.1:6379?password=yourpassword");

相关文章:

在 Ubuntu 上安装和配置 Redis

在 Ubuntu 上安装和配置 Redis&#xff0c;并使用发布-订阅&#xff08;Pub/Sub&#xff09;功能&#xff0c;可以按照以下步骤进行&#xff1a; 一、安装 Redis 1. 更新包列表 首先&#xff0c;更新本地的包列表以确保获取到最新的软件包信息&#xff1a; sudo apt update…...

【WPS】【WORDEXCEL】【VB】实现微软WORD自动更正的效果

1. 代码规范方面 添加 Option Explicit&#xff1a;强制要求显式声明所有变量&#xff0c;这样可以避免因变量名拼写错误等情况而出现难以排查的逻辑错误&#xff0c;提高代码的健壮性。使用 On Error GoTo 进行错误处理&#xff1a;通过设置错误处理机制&#xff0c;当代码执行…...

相机SD卡照片数据不小心全部删除了怎么办?有什么方法恢复吗?

前几天&#xff0c;小编在后台友收到网友反馈说他在整理相机里的SD卡&#xff0c;原本是想把那些记录着美好瞬间的照片导出来慢慢欣赏。结果手一抖&#xff0c;不小心点了“删除所有照片”&#xff0c;等他反应过来&#xff0c;屏幕上已经显示“删除成功”。那一刻&#xff0c;…...

【机器学习:十四、TensorFlow与PyTorch的对比分析】

1. 发展背景与社区支持 1.1 TensorFlow的背景与发展 TensorFlow是Google于2015年发布的开源深度学习框架&#xff0c;基于其前身DistBelief系统。作为Google大规模深度学习研究成果的延续&#xff0c;TensorFlow从一开始就定位为生产级框架&#xff0c;强调跨平台部署能力和性…...

从零搭建一个Vue3 + Typescript的脚手架——day1

1.开发环境搭建 (1).配置vite vite简介 Vite 是一个由尤雨溪开发的现代化前端构建工具&#xff0c;它利用了浏览器对 ES 模块的原生支持&#xff0c;极大地提升了开发服务器的启动速度和热更新效率。Vite 不仅适用于 Vue.js&#xff0c;还支持 React、Svelte 等多种框架&…...

unity打包sdk热更新笔记

基础打包需要知识&#xff1a; 安装包大小不要超过2G&#xff0c;AB包数量过多会影响加载和构建&#xff0c;多次IO&#xff0c;用Gradle打包&#xff0c;要支持64位系统&#xff0c;不同的渠道包&#xff1a;让做sdk的人支持&#xff0c;提供渠道包的打包工具 配置系统环境变量…...

算法-贪心算法简单介绍

下面是贪心算法视频课的导学内容. 目录 1. 什么是贪心算法?2. 贪心算法简单的三个例子:1. 找零问题2. 最小路径和问题3. 背包问题 3. 贪心算法的特点4. 贪心算法学习的方式? 1. 什么是贪心算法? 简单来说, 我们称以局部最优进而使得全局最优的一种思想实现出来的算法为贪心…...

1Hive概览

1Hive概览 1hive简介2hive架构3hive与Hadoop的关系4hive与传统数据库对比5hive的数据存储 1hive简介 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供类SQL查询功能。 其本质是将SQL转换为MapReduce/Spark的任务进…...

Linux SUID提权

文章目录 1. SUID/SGID2. 查找SUID文件3. SUID/SGID提权3.1 SUID配置不当3.2 SUID systemctl提权3.3 $PATH变量劫持 参考 1. SUID/SGID SUID&#xff08;Set User ID&#xff09;意味着如果某个用户对属于自己的文件设置了这种权限&#xff0c;那么其他用户在执行这一脚本时也…...

RabbitMQ确保消息可靠性

消息丢失的可能性 支付服务先扣减余额和更新支付状态&#xff08;这俩是同步调用&#xff09;&#xff0c;然后通过RabbitMq异步调用支付服务更新订单状态。但是有些情况下&#xff0c;可能订单已经支付 &#xff0c;但是更新订单状态却失败了&#xff0c;这就出现了消息丢失。…...

用plotly制作一条带颜色的时间轴,显示学习情况

前一篇文章我写到用matplotlib制作一条带颜色的时间轴&#xff0c;显示学习情况-CSDN博客&#xff0c;这是我在工作地方写的程序&#xff0c;我回家后发现家里的笔记本用不了matplotlib&#xff0c;所以我尝试用plotly这另外的模块也写一段程序&#xff0c;让我的程序能够回家使…...

MySQL:索引

目录 1.MySQL索引是干什么的 2.铺垫知识 3.单个page的理解 4.页目录 单页情况 多页情况 1.MySQL索引是干什么的 MySQL的索引是提高查询效率&#xff0c;主要提高海量数据的检索速度。 2.铺垫知识 操作系统与磁盘之间IO的基本单位是4kb。 数据库是一个应用层软件&#…...

Kylin: `GLIBC_2.34‘ not found

需要查看服务器GLIBC版本 strings /lib64/libc.so.6 |grep GLIBC_如果没有&#xff0c;有两种办法&#xff0c;一种是libc.so.6降级&#xff0c;但是这样很容易将服务器搞崩溃 所以可以尝试下载对应版本 glibc 打包编译&#xff0c;重新建立软连&#xff0c;下列是RPM资源可以…...

ASP.NET Core - 依赖注入(四)

ASP.NET Core - 依赖注入&#xff08;四&#xff09; 4. ASP.NET Core默认服务5. 依赖注入配置变形 4. ASP.NET Core默认服务 之前讲了中间件&#xff0c;实际上一个中间件要正常进行工作&#xff0c;通常需要许多的服务配合进行&#xff0c;而中间件中的服务自然也是通过 Ioc…...

【全套】基于分类算法的学业警示预测信息管理系统

【全套】基于分类算法的学业警示预测信息管理系统 【摘 要】 随着网络技术的发展基于分类算法的学业警示预测信息管理系统是一种新的管理方式&#xff0c;同时也是现代学业预测信息管理的基础&#xff0c;利用互联网的时代与实际情况相结合来改变过去传统的学业预测信息管理中…...

《零基础Go语言算法实战》【题目 2-25】goroutine 的执行权问题

《零基础Go语言算法实战》 【题目 2-25】goroutine 的执行权问题 请说明以下这段代码为什么会卡死。 package main import ( "fmt" "runtime" ) func main() { var i byte go func() { for i 0; i < 255; i { } }() fmt.Println("start&quo…...

回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测

回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测 目录 回归预测 | MATLAB实RVM相关向量机多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 RVM-Adaboost相关向量机集成学习多输入单输出回归预测是一种先进的机器学习方法&#xff0c;用于处理…...

【OJ刷题】同向双指针问题3

这里是阿川的博客&#xff0c;祝您变得更强 ✨ 个人主页&#xff1a;在线OJ的阿川 &#x1f496;文章专栏&#xff1a;OJ刷题入门到进阶 &#x1f30f;代码仓库&#xff1a; 写在开头 现在您看到的是我的结论或想法&#xff0c;但在这背后凝结了大量的思考、经验和讨论 目录 1…...

数据挖掘实训:天气数据分析与机器学习模型构建

随着气候变化对各行各业的影响日益加剧&#xff0c;精准的天气预测已经变得尤为重要。降雨预测在日常生活中尤其关键&#xff0c;例如农业、交通和灾害预警等领域。本文将通过机器学习方法&#xff0c;利用历史天气数据预测明天是否会下雨&#xff0c;具体内容包括数据预处理、…...

RAG 带来的一些问题

RAG (Retrieval-Augmented Generation) 提高了查询的准确性&#xff0c;但也引入了一些新的问题。主要问题集中在信息检索和生成模型的结合方式上&#xff0c;这些问题影响了系统的性能、效率和输出质量。以下是 RAG 带来的主要问题以及相应的解决方法。 1. 依赖外部检索系统的…...

大疆上云API基于源码部署

文章目录 大疆上云API基于源码部署注意事项1、学习官网2、环境准备注意事项3、注册成为DJI开发者4、下载前后端运行所需要的包/依赖前端依赖下载后端所需要的Maven依赖包 用到的软件可以在这里下载5、MySQL数据库安装安装MySQL启动MySQL服务在IDEA中配置MySQL的连接信息 6、Red…...

【Python系列】Python 中使用 pymysql 连接 MySQL 数据库进行数据查询

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【数据结构学习笔记】19:跳表(Skip List)

介绍 跳表是一个能在 O ( n l o g n ) O(nlogn) O(nlogn)时间完成查找、插入、删除的数据结构&#xff0c;相比于树形结构优点就是很好写&#xff08;所以也用于实现Redis ZSet&#xff09;。其核心思想就是维护一个元素有序的&#xff0c;能随机提升索引层数的链表。最下面一…...

《计算机网络》课后探研题书面报告_网际校验和算法

网际校验和算法 摘 要 本文旨在研究和实现网际校验和&#xff08;Internet Checksum&#xff09;算法。通过阅读《RFC 1071》文档理解该算法的工作原理&#xff0c;并使用编程语言实现网际校验和的计算过程。本项目将对不同类型的网络报文&#xff08;包括ICMP、TCP、UDP等&a…...

【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis

以人物为中心的主体到图像的高保真合成&#xff0c;CVPR2024 code&#xff1a;CodeGoat24/Face-diffuser: [CVPR2024] Official implementation of High-fidelity Person-centric Subject-to-Image Synthesis. paper&#xff1a;2311.10329 背景 研究问题&#xff1a;这篇文…...

Flink集成TDEngine来批处理或流式读取数据进行流批一体化计算(Flink SQL)拿来即用的案例

Flink 以其流批一体化的编程模型而备受青睐。它支持高吞吐、低延迟的实时流计算,同时在批处理方面也表现出色。Flink 提供了丰富的 API,如 DataStream API 和 DataSet API,方便开发者进行数据处理操作,包括转换、聚合、连接等,使得开发者能够轻松构建复杂的数据处理逻辑。…...

Zookeeper特性与节点数据类型详解

1、 Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来解决分布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高效可靠的原语集…...

C# HslCommunication库

C# HslCommunication库是一个用于建立TCP连接并进行Modbus通讯的库。下面将详细介绍如何使用该库进行TCP通讯。 首先&#xff0c;需要在C#项目中引用HslCommunication库。 创建一个TCP连接对象&#xff0c;可以使用HslCommunication.ModBus.ModbusTcpNet类&#xff0c;例如&am…...

springMVC实现文件上传

目录 一、创建项目 二、引入依赖 三、web.xml 四、编写上传文件的jsp页面 五、spring-mvc.xml 六、controller 七、运行 一、创建项目 二、引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.o…...

【深度学习】Windows系统Anaconda + CUDA + cuDNN + Pytorch环境配置

在做深度学习内容之前&#xff0c;为GPU配置anaconda CUDA cuDNN pytorch环境&#xff0c;在网络上参考了很多帖子&#xff0c;但pytorch的安装部分都有些问题或者比较复杂繁琐&#xff0c;这里总结了相对简单快速的配置方式 文章目录 AnacondaCUDAcuDNNpytorchtorchtorchau…...

springboot整合rabbitmq

1. 添加依赖 首先&#xff0c;在你的 pom.xml 文件中添加 RabbitMQ 的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2. 配置 RabbitMQ …...

【React】脚手架进阶

目录 暴露webpack配置package.json的变化修改webpack.config.js配置less修改域名、端口号浏览器兼容处理处理跨域 暴露webpack配置 react-scripts对脚手架中的打包命令进行封装&#xff0c;如何暴露这些打包配置呢&#xff1f;上篇写到在package.json中的scripts配置项中有eje…...

Unreal Engine 5 (UE5) Metahuman 的头部材质

在图中&#xff0c;你展示了 Unreal Engine 5 (UE5) Metahuman 的头部材质部分&#xff0c;列出了头部材质的多个元素。以下是对每个部分的解释&#xff1a; 材质解释 Element 0 - MI_HeadSynthesized_Baked 作用&#xff1a; 这是 Metahuman 的主要头部材质&#xff0c;控制整…...

当自动包布机遇上Profinet转ModbusTCP网关,“妙啊”,工业智能“前景无限

在自动化控制技术日新月异的当下&#xff0c;Profinet与ModbusTCP这两种协议在工业通信领域占据着举足轻重的地位。ModbusTCP是基于以太网的串行通信协议&#xff0c;而Profinet则是依托工业以太网的现场总线协议。它们在数据传输速度、实时性表现以及兼容性等方面各具特色。不…...

Elasticsearch 批量导入数据(_bluk方法)

官方API&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html 建议先看API POST /<索引名>/_bulk 格式要求&#xff1a; POST _bulk { "index" : { "_index" : "test", "_id" : &q…...

lammps应用于热电材料

文章目录 1.热传导理论1.热导率2.晶格振动3.晶体热容4.声子平均自由程5.傅里叶定律 2.lammps计算Ar热导率3.lammps模拟SiGe热电材料4.平衡分子动力学(EMD) 1.热传导理论 1.热导率 热传递机制随介质材料相的不同而改变&#xff1a;固体(热传导)、液体(热对流)、气体(对流和辐射…...

SAP资产盘盈盘亏的过账处理、入账价值错误调整、资产减值准备

文章目录 一、SAP资产盘盈盘亏处理1、ABNAN盘盈 &#xff08;往年资产&#xff09; ABZON (当年资产&#xff09;2、ABAVN盘亏 二、资产价值入账错了&#xff08;价值多了或少了&#xff09;&#xff0c;怎么调账1、价值少了2、价值多了 三、资产减值准备1、启用重估2、指定间隔…...

Adobe与MIT推出自回归实时视频生成技术CausVid。AI可以边生成视频边实时播放!

传统的双向扩散模型&#xff08;顶部&#xff09;可提供高质量的输出&#xff0c;但存在显著的延迟&#xff0c;需要 219 秒才能生成 128 帧的视频。用户必须等待整个序列完成才能查看任何结果。相比之下CausVid将双向扩散模型提炼为几步自回归生成器&#xff08;底部&#xff…...

MYSQL学习笔记(一):准备数据和数据库的最基本命令

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇是入门准备数据和一些关于数据库的操作命令&#xff1b;虽然MYSQL命令很多&…...

求矩阵不靠边元素之和(PTA)C语言

求矩阵的所有不靠边元素之和&#xff0c;矩阵行的值m从键盘读入(2<m<10)&#xff0c;调用自定义函数Input实现矩阵元素从键盘输入&#xff0c;调用Sum函数实现求和。(只考虑float型&#xff0c;且不需考虑求和的结果可能超出float型能表示的范围)。 函数接口定义&#x…...

仿infobip模板功能-可通过占位符配置模板内容

模仿infobip制作的模板功能&#xff0c;正文可在任意位置加参数的功能。如下图所示&#xff1a;在正文中通过{{\d}}进行占位&#xff0c;在使用模板时&#xff0c;可在此位置自定制内容&#xff0c;并预览效果。 代码&#xff1a; <template><div class"templa…...

STM32第6章、WWDG

一、简介 WWDG&#xff1a;全称Window watchdog&#xff0c;即窗口看门狗&#xff0c;本质上是一个能产生系统复位信号和提前唤醒中断的计数器。 特性&#xff1a; 是一个递减计数器。 看门狗被激活后&#xff0c; 当递减计数器值从 0x40减到0x3F时会产生复位&#xff08;即T6位…...

没有正确使用HTTP Range Request,导致访问Azure Blob存储的视频没有实现流式播放

引文&#xff1a; 组里的小伙伴在修改视频播放相关的代码&#xff0c;修改之前的方案使用CDN转发&#xff0c;可以实现流式播放&#xff0c;修改之后的代码因为没有正确的使用Http Range Request, 导致画面访问Azure Blob存储的视频没有实现流式播放&#xff0c;整理下线索在这…...

React中Fiber树构建过程详解——react中render一个App组件(包含子组件)的流程详解

在 React 中&#xff0c;渲染一个包含子组件的组件涉及一系列底层流程&#xff0c;包括构建虚拟 DOM&#xff08;React Element&#xff09;、协调&#xff08;Reconciliation&#xff09;、Fiber 树管理和最终的 DOM 操作。以下是一个从底层解析的详细流程&#xff1a; 1. 初始…...

机器学习赋能的智能光子学器件系统研究与应用

在人工智能与光子学设计融合的背景下&#xff0c;科研的边界持续扩展&#xff0c;创新成果不断涌现。从理论模型的整合到光学现象的复杂模拟&#xff0c;从数据驱动的探索到光场的智能分析&#xff0c;机器学习正以前所未有的动力推动光子学领域的革新。据调查&#xff0c;目前…...

晨辉面试抽签和评分管理系统之七:面试成绩核算的三种方式

晨辉面试抽签和评分管理系统&#xff08;下载地址:www.chenhuisoft.cn&#xff09;是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…...

语音合成的预训练模型

语音合成的预训练模型 与 ASR(语音识别)和音频分类任务相比,语音合成的预训练模型检查点明显较少。在 Hugging Hub 上,可以找到近 300 个适合的检查点。 在这些预训练模型中,重点关注两种在 Huggingface Transformers 库中开箱即用的架构——SpeechT5 和 Massive Multili…...

Windows怎么搭建rust环境?

在Windows上搭建Rust开发环境相对简单&#xff0c;主要步骤如下&#xff1a; ### 1. 安装Rust 最简单的方法是使用官方提供的安装脚本。打开命令提示符&#xff08;Command Prompt&#xff09;或PowerShell&#xff0c;然后运行以下命令来下载并安装Rust&#xff1a; bash cu…...

【Flink】Flink内存管理

Flink内存整体结构图&#xff1a; JobManager内存管理 JVM 进程总内存(Total Process Memory)Flink总内存(Total Flink Memory)&#xff1a;JVM进程总内存减去JVM Metaspace(元空间)和JVM Overhead(运行时开销)上图解释&#xff1a; JVM进程总内存为2G;JVM运行时开销(JVM Overh…...

React方向:react中5种Dom的操作方式

1、通过原生JS获取Dom去操作 通过document.querySelector(#title)原生js的方式去拿到dom节点&#xff0c;然后去进行操作。 import {Component} from "react";class App extends Component {//定义获取Dom的函数handleGetDom(){let title document.querySelector(#t…...