使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群
文章目录
- 使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群
- Redis 主从架构简介
- Redis Sentinel 简介
- 配置文件
- 1. 主节点配置 (`redis-master.conf`)
- 2. 从节点配置 (`redis-slave1.conf` 和 `redis-slave2.conf`)
- `redis-slave1.conf`
- `redis-slave2.conf`
- 3. Sentinel 配置 (`sentinel-26379.conf` 和 `sentinel-26380.conf`)
- `sentinel-26379.conf`
- `sentinel-26380.conf`
- Docker Compose 配置
- 关键知识点扩展
- Docker Compose 文件解析
使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群
Redis 主从架构简介
-
Redis 主从架构:
Redis 主从架构是一种数据复制机制,使得数据从主节点同步到多个从节点,从而提升系统的高可用性和性能。主节点接收写操作,并将这些操作同步到从节点,以实现数据的冗余和数据一致性。 -
主从节点的配置:
redis-slave1.conf
配置解析:slaveof 10.255.96.33 6379
: 配置从节点docker_redis_slave1
作为主节点docker_redis_master
的从节点。在 Docker 环境中,可以通过主节点的容器名来进行访问,而不需要手动配置 IP 地址。port 6380
: 配置从节点的监听端口号。logfile "redis-6380.log"
: 配置从节点的日志文件。appendonly yes
: 配置 Redis 使用 AOF 文件进行持久化。
redis-slave2.conf
配置解析:slaveof 10.255.96.33 6379
: 配置从节点docker_redis_slave2
作为主节点docker_redis_master
的从节点。port 6381
: 配置从节点的监听端口号。logfile "redis-6381.log"
: 配置从节点的日志文件。appendonly yes
: 配置 Redis 使用 AOF 文件进行持久化。
-
主节点的密码认证:
为增强安全性,可以配置masterauth
用于从节点与主节点之间的安全认证,确保只有授权的客户端可以访问主节点。此外,可以通过requirepass
配置客户端连接 Redis 服务器的密码。
Redis Sentinel 简介
-
Redis Sentinel 作用:
Redis Sentinel 是 Redis 集群中的监控系统,可以监控 Redis 主从架构中的主节点状态。当主节点不可用时,Sentinel 可以触发故障转移,将流量切换到一个新的主节点,确保集群的高可用性。 -
Sentinel 配置文件解析:
sentinel-26379.conf
配置解析:sentinel monitor mymaster 10.255.96.33 6379 2
: 配置 Sentinel 监控主节点10.255.96.33
上的端口6379
,需要至少 2 个 Sentinel 判定主节点失效后,才进行自动故障转移。sentinel auth-pass mymaster 123456
: 配置连接主节点的密码,以增加安全性。sentinel down-after-milliseconds mymaster 10000
: 主节点在连续 10 秒无法响应后判定为失效。sentinel failover-timeout mymaster 60000
: 故障转移的超时时间为 60 秒。
sentinel-26380.conf
配置解析:sentinel monitor mymaster 10.255.96.33 6379 2
: 配置 Sentinel 监控主节点,并允许多个 Sentinel 集群之间的协调。sentinel known-sentinel mymaster 10.255.96.33 26379 436c81e541838009d8a22509ef2172399da4efa6
: 配置多个 Sentinel 的信息,以确保集群内各个 Sentinel 之间的通信和协调。
-
集群中多个 Sentinel 的配置:
使用sentinel known-sentinel
配置多个 Sentinel 以确保集群的冗余性和高可用性。Sentinel 之间通过 IP 和端口进行通信,以确保集群的协调。如果一个 Sentinel 因故障或网络问题失效,其他 Sentinel 可以接管并继续监控主节点。
配置文件
1. 主节点配置 (redis-master.conf
)
# Redis 主节点监听的端口
port 6379# 日志文件
logfile "redis-6379.log"# 开启持久化
appendonly yes# 持久化文件名
appendfilename "appendonly.aof"# 设置认证密码(可选)
# requirepass 123456
2. 从节点配置 (redis-slave1.conf
和 redis-slave2.conf
)
redis-slave1.conf
port 6380
logfile "redis-6380.log"
appendonly yes
appendfilename "appendonly.aof"# 配置主节点
slaveof 10.255.96.33 6379# 主节点认证密码(如主节点配置了密码则必须启用)
# masterauth 123456
redis-slave2.conf
port 6381
logfile "redis-6381.log"
appendonly yes
appendfilename "appendonly.aof"# 配置主节点
slaveof 10.255.96.33 6379# 主节点认证密码(如主节点配置了密码则必须启用)
# masterauth 123456
3. Sentinel 配置 (sentinel-26379.conf
和 sentinel-26380.conf
)
sentinel-26379.conf
port 26379
dir "/app/application"# Sentinel 的唯一标识
sentinel myid 436c81e541838009d8a22509ef2172399da4efa6# 监控主节点
sentinel monitor mymaster 10.255.96.33 6379 2# 判定节点失效的时间
sentinel down-after-milliseconds mymaster 10000# 故障转移的超时时间
sentinel failover-timeout mymaster 60000# 从节点信息
sentinel known-replica mymaster 10.255.96.33 6380
sentinel known-replica mymaster 10.255.96.33 6381# 其他 Sentinel 信息
sentinel known-sentinel mymaster 10.255.96.33 26380 978fee4f6bdf60e79468ead69b81deceb7a7bb44
sentinel current-epoch 0
sentinel-26380.conf
port 26380
dir "/app/application"# Sentinel 的唯一标识
sentinel myid 978fee4f6bdf60e79468ead69b81deceb7a7bb44# 监控主节点
sentinel monitor mymaster 10.255.96.33 6379 2# 判定节点失效的时间
sentinel down-after-milliseconds mymaster 10000# 故障转移的超时时间
sentinel failover-timeout mymaster 60000# 从节点信息
sentinel known-replica mymaster 10.255.96.33 6380
sentinel known-replica mymaster 10.255.96.33 6381# 其他 Sentinel 信息
sentinel known-sentinel mymaster 10.255.96.33 26379 436c81e541838009d8a22509ef2172399da4efa6
sentinel current-epoch 0
Docker Compose 配置
version: "3.0"services:docker_redis_master:image: harbor-ioscar.cbf.com/hawk/redis:5.0.14container_name: docker_redis_mastervolumes:- ./redis-master.conf:/app/application/redis-temp/redis-master.confcommand: redis-server /app/application/redis-temp/redis-master.confports:- 6379:6379network_mode: hostdocker_redis_slave1:image: harbor-ioscar.cbf.com/hawk/redis:5.0.14container_name: docker_redis_slave1volumes:- ./redis-slave1.conf:/app/application/redis-temp/redis-slave1.confcommand: redis-server /app/application/redis-temp/redis-slave1.confports:- 6380:6380network_mode: hostdocker_redis_slave2:image: harbor-ioscar.cbf.com/hawk/redis:5.0.14container_name: docker_redis_slave2volumes:- ./redis-slave2.conf:/app/application/redis-temp/redis-slave2.confcommand: redis-server /app/application/redis-temp/redis-slave2.confports:- 6381:6381network_mode: hostdocker_redis_sentinel26379:image: harbor-ioscar.cbf.com/hawk/redis:5.0.14container_name: docker_redis_sentinel26379volumes:- ./sentinel-26379.conf:/app/application/redis-temp/sentinel-26379.confcommand: redis-sentinel /app/application/redis-temp/sentinel-26379.confports:- 26379:26379network_mode: hostdocker_redis_sentinel26380:image: harbor-ioscar.cbf.com/hawk/redis:5.0.14container_name: docker_redis_sentinel26380volumes:- ./sentinel-26380.conf:/app/application/redis-temp/sentinel-26380.confcommand: redis-sentinel /app/application/redis-temp/sentinel-26380.confports:- 26380:26380network_mode: host
关键知识点扩展
-
主从复制的原理
- 主节点负责写操作,从节点通过
slaveof
指令与主节点建立连接并同步数据。 - 数据同步分为全量同步和增量同步。
- 主节点负责写操作,从节点通过
-
Sentinel 的工作原理
- Sentinel 通过心跳机制监控主从节点状态。
- 当主节点失效时,Sentinel 通过选举机制选择一个从节点提升为主节点,并更新其他从节点的同步目标。
-
Docker 持久化与数据挂载
- 配置文件通过
volumes
映射至容器内部,方便管理与更新。 - 数据目录需要挂载到宿主机路径,以保证数据不会因为容器重启而丢失。
- 配置文件通过
-
高可用性
- 使用多个 Sentinel 节点可以避免单点故障,但需要合理配置
quorum
参数,确保故障判定的准确性。
- 使用多个 Sentinel 节点可以避免单点故障,但需要合理配置
-
主从架构的高可用性:
主从架构通过数据复制和故障转移机制提高 Redis 的高可用性。当主节点失效时,从节点会自动接管,并将数据状态保持一致 -
Sentinel 的故障转移机制:
sentinel down-after-milliseconds
: 设定主节点在多长时间内无法响应PING指令后判定为失效。sentinel failover-timeout
: 故障转移的最大等待时间,确保故障转移及时完成。sentinel config-epoch
和sentinel leader-epoch
: 用于协调整个集群内的 Sentinel 状态。
Docker Compose 文件解析
- 挂载配置文件:
在 Docker Compose 文件中,volumes
选项用于将 Redis 配置文件挂载到容器中,使得容器可以使用指定的配置启动。挂载配置文件有助于统一管理和快速配置多个 Redis 实例。 - 网络模式:
network_mode: host
: 这种模式下,容器共享主机网络,不需要配置额外的网络路由。虽然简单易用,但可能会增加安全风险,尤其是在开放端口时。external: true
: 如果使用外部网络,确保容器可以访问到网络服务,避免网络隔离问题。
- 命令配置:
command: redis-server /app/application/redis-temp/redis-master.conf
: 配置 Redis 主节点启动使用的配置文件路径。command: redis-sentinel /app/application/redis-temp/sentinel-26379.conf
: 配置 Redis Sentinel 启动使用的配置文件路径。
相关文章:
使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群
文章目录 使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群Redis 主从架构简介Redis Sentinel 简介配置文件1. 主节点配置 (redis-master.conf)2. 从节点配置 (redis-slave1.conf 和 redis-slave2.conf)redis-slave1.confredis-slave2.conf3. Sentinel 配置 (sentin…...
【Java】4、虚拟机 JVM
目录 Java内存区域详解(重点) JVM垃圾回收详解(重点) 类文件结构详解 类加载过程详解 类加载器详解(重点) 最重要的JVM参数总结 JDK监控和故障处理工具总结 JVM线上问题排查和性能调优案例 参考: JVM 核心技术 32 讲 深入浅出 Java 虚拟机...
Vue3之组合式API详解
Vue 3引入了一种新的API风格——组合式API(Composition API),旨在提升组件的逻辑复用性和可维护性。本文将详细阐述Vue 3中的组合式API,包括其定义、特点、使用场景、优势等,并给出具体的示例代码。 一、定义 组合式…...
Flutter编译Module was compiled with an incompatible version of Kotlin错误解决
文章目录 编译报错如下解决方法修复方案 编译报错如下 e: C:/Users/YUAN/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.9.20/e58b4816ac517e9cc5df1db051120c63d4cde669/kotlin-stdlib-1.9 .20.jar!/META-INF/kotlin-stdlib-jdk8.kotlin_module:…...
Uniapp插件如何通过NFC读取多种证卡信息?
nfc读卡uniapp插件,由中软高科进行开发,主要是通过NFC读取居民身份证、港澳台居住证、外国人居住证、护照等证卡的信息。经过多个版本的升级更新,目前性能已趋于稳定,并且读卡速度较之最初版本有了大的提升。 注意事项 测试使用的…...
本地docker镜像改名字
如果你想修改本地 Docker 镜像的名字,可以通过创建该镜像的新标签(tag)来实现。Docker 中没有直接修改镜像名字的命令,但可以通过重新打标签的方式实现类似的效果。以下是具体步骤: 查看当前镜像: docker…...
VS Code 远程连接 SSH 服务器
文章目录 一、安装 Remote - SSH 扩展并连接远程主机二、免密连接远程主机1. 生成 SSH 密钥对2. 将公钥复制到远程服务器3. 配置 SSH 客服端4. 连接测试 随着技术的不断迭代更新,在 Linux 系统中使用 Vim、nano 等基于 Shell 终端的编辑器(我曾经也是个 …...
艾体宝案例丨CircleCI 助力 ANA Systems 打造高效 CI/CD 模型
在现代软件开发领域,效率和可靠性是企业在竞争中取胜的关键。本文将深入探讨 ANA Systems 如何通过引入业界领先的 CI/CD 平台——CircleCI,克服传统开发流程的瓶颈,实现开发运营效率的全面提升。同时,本文还将详细解析 CircleCI …...
vue 上传组件 vxe-upload 实现拖拽调整顺序
vue 上传组件 vxe-upload 实现拖拽调整顺序,通过设置 drag-sort 参数就可以启用拖拽排序功能 官网:https://vxeui.com/ 图片拖拽排序 <template><div><vxe-upload v-model"imgList" mode"image" multiple drag-sor…...
Elasticsearch的一些介绍
你想问的可能是 **Elasticsearch**,以下是关于它的一些介绍: ### 概述 Elasticsearch是一个基于Apache Lucene库构建的开源分布式搜索和分析引擎,采用Java语言编写,具有高性能、可扩展性和易用性等特点,可用于各种数据…...
从源码构建安装Landoop kafka-connect-ui
背景 部署Landoop kafka-connect-ui最简单的办法还是通过docker来部署,我们之前的kafka-connect-ui就是通过docker部署的,但是,最近发现个问题:当使用docker部署且防火墙使用的是firewalld的情况下,就会出现端口冲突。…...
MybatisPlus-扩展功能
代码生成 在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用,也很麻烦。 这里…...
发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)
CS软件授权注册系统-发布/部署WebApi服务器(IIS.NET8ASP.NETCore) 目录 本文摘要VS2022配置发布VS2022发布WebApiIIS服务器部署WebApi 将程序文件复制到云服务器添加网站配置应用程序池配置dns域名配置端口阿里云ECS服务器配置19980端口配置https协议 (申请ssl证书)测试WebAp…...
【2025最新计算机毕业设计】基于SpringBoot+Vue城市中小学体育场馆预约系统【提供源码+答辩PPT+文档+项目部署】
一、项目技术架构: 本项目是一款城市中小学体育场馆预约系统的设计与实现。 该SpringBootVue的城市中小学体育场馆预约系统,后端采用SpringBoot架构,前端采用VueElementUI实现页面的快速开发,并使用关系型数据库MySQL存储系统运行…...
Spring Security 6 系列之二 - 基于数据库的用户认证和认证原理
之所以想写这一系列,是因为之前工作过程中使用Spring Security,但当时基于spring-boot 2.3.x,其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0,结果一看Spring Security也升级为6.3.0,关键是其风…...
vue中打包dist文件内static 和 assets 的区别
背景 在Vue.js项目中,assets 和 static 是两个用于存放静态资源的文件夹,但它们在使用方式和处理机制上有所不同 用途 assets: assets 文件夹通常用于存放那些需要在构建过程中被Webpack处理的静态资源。这些资源可以包括图片、字体、样式文件&#…...
Big Model weekly | 第49期
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 01 Magnetic Preference Optimization: Achieving Last-iterate Convergence for Language Models Alignment 自我对弈方法在多个领域增强模型能力方面展现出了显著的成功。在基于人类反馈的强化学习࿰…...
Node.js内置模块
1.内置模块 Node.js的中文网参考手册:https://nodejs.cn//api 帮助文档 API文档:查看对应的模块,左边是模块,右边是模块的成员 源码:https://github.com/nodejs/node/tree/main/lib 查看 例如: http.js 创建web服务器的模块 -->进入源码中,搜索…...
使用Nexus3搭建npm私有仓库
一、npm介绍 npm的全称是Node Package Manager,它是一个开放源代码的命令行工具,用于安装、更新和管理Node.js模块。npm是Node.js的官方模块管理器,它允许用户从一个集中的仓库中下载和安装公共的Node.js模块,并将这些模块集成到…...
MySQL学习之表操作
MySQL学习之表操作 基础命令 查询当前所在数据库的所有表 show tables;查看指定的表结构, 可以查看到指定表的字段,字段的类型、是否可以为NULL,是否存在默认值等信息 mysql> desc user; ----------------------------------------------- | Field |…...
C语言学习day22:ReadProcessMemory函数/游戏内存数据读取工具开发
简言: ReadProcessMemory函数是 Windows API 中的一个函数,用于从目标进程的虚拟内存空间中读取数据。这个函数非常有用,尤其是在进行内存分析、调试、或某些类型的逆向工程时。 ReadProcessMemory函数 函数原型 BOOL ReadProcessMemory(…...
Linux虚拟文件系统
参考:深入分析LINUX内核源码 深入分析Linux内核源码 (kerneltravel.net) 作为一个最著名的自由软件,Linux 确实名不虚传,几乎处处体现了“自由”,你可以编译适合自己系统要求的内核,或者轻松添加别人开发的新的模块。只…...
OpenIPC开源FPV之Adaptive-Link天空端代码解析
OpenIPC开源FPV之Adaptive-Link天空端代码解析 1. 源由2. 框架代码3. 报文处理3.1 special报文3.2 普通报文 4. 工作流程4.1 Profile 竞选4.2 Profile 研判4.3 Profile 应用 5. 总结6. 参考资料7. 补充资料7.1 RSSI 和 SNR 的物理含义7.2 信号质量加权的理论依据7.3 实际应用中…...
NPU是什么?电脑NPU和CPU、GPU区别介绍
随着人工智能技术的飞速发展,计算机硬件架构也在不断演进以适应日益复杂的AI应用场景。其中,NPU(Neural Processing Unit,神经网络处理器)作为一种专为深度学习和神经网络运算设计的新型处理器,正逐渐崭露头…...
.Net WebAPI(一)
文章目录 项目地址一、WebAPI基础1. 项目初始化1.1 创建简单的API1.1.1 get请求1.1.2 post请求1.1.3 put请求1.1.4 Delete请求 1.2 webapi的流程 2.Controllers2.1 创建一个shirts的Controller 3. Routing3.1 使用和创建MapControllers3.2 使用Routing的模板语言 4. Mould Bind…...
.NET 技术 | 调用系统API创建Windows服务
01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失…...
OpenLinkSaas 2025年1月开发计划
先来看看OpenLinkSaas的大目标 在OpenLinkSaas的产品目标中,让开发人员更加方便的使用云资源是目标之一。通过各大云厂商的API,来可视化云上基础设施的数据是远远不够的。我们准备在2025年1月份增加方便管理和运营研发场景下服务器的能力。 这部分的功能…...
同态加密算法详解及Python实现
目录 同态加密算法详解及Python实现第一部分:同态加密概述与原理1.1 什么是同态加密?同态加密的定义:1.2 同态加密的分类1.3 同态加密的优势与挑战优势挑战第二部分:常见同态加密算法及其应用场景2.1 RSA同态加密支持操作应用场景2.2 Paillier加密支持操作应用场景2.3 Gent…...
【HarmonyOS NEXT】ArkTs函数、类、接口、泛型、装饰器解析与使用
1. 前置学习文档 【HarmonyOS NEXT】ArkTs数据类型解析与使用(https://juejin.cn/spost/7448894500348608522) 2. 前言 在原生JavaScript中只有函数和类的实现,为了更好的面向对象编程,TypeScript 引入了接口、泛型、装饰器等特性。ArkTS也继承了这些特性…...
【数学】矩阵的逆与伪逆 EEGLAB
文章目录 前言matlab代码作用EEGLAB 中的代码总结参考文献 前言 在 EEGLAB 的使用中,运行程序时出现了矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND 1.873732e-20 的 bug,调查 EEGLAB 后发现是 raw 数据的问题。 matlab代码 A_1 …...
用github镜像加速, --recursive还是去github站怎么处理?
小伙伴们大多碰到过github抽风的情况,时通时断,时快时慢,非常考验心情。 以前碰到连不上的时候,我大多就是在gitee和gitcode网站找一下镜像,找到后直接git clone 新地址即可。但是碰到 --recursive的时候就不行了&…...
第P2周:Pytorch实现CIFAR10彩色图片识别
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 实现CIFAR-10的彩色图片识别实现比P1周更复杂一点的CNN网络 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: …...
springboot3访问第三方接口
添加依赖(如果尚未添加) 在pom.xml文件中,确保已经包含spring-boot-starter-web依赖,因为RestTemplate通常在这个依赖范围内。如果没有,添加如下依赖: <dependency><groupId>org.springframe…...
Ubuntu K8s
https://serious-lose.notion.site/Ubuntu-K8s-d8d6a978ad784c1baa2fc8c531fbce68?pvs74 2 核 2G Ubuntu 20.4 IP 172.24.53.10 kubeadmkubeletkubectl版本1.23.01.23.01.23.0 kubeadm、kubelet 和 kubectl 是 Kubernetes 生态系统中的三个重要组件 kubeadm: 主…...
大数据第三次周赛
类斐波那契循环数 #include<bits/stdc.h> using namespace std; #define int long long int arr[1000010]; bool key(int k){int num0;string strto_string(k);for(int i0;i<str.length();i){arr[num]str[i]-0;}int l0,rnum-1;int shix0; while(shix<k){shix0;for…...
《Java核心技术I》Swing用户界面组件
Swing和模型-视图-控制器设计模式 用户界面组件各个组成部分,如按钮,复选框,文本框或复杂的树控件,每个组件都有三个特征: 内容,如按钮的状态,文本域中的文本。外观,颜色,…...
Web开发 -前端部分-CSS
CSS CSS(Cascading Style Sheet):层叠样式表,用于控制页面的样式(表现)。 一 基础知识 1 标题格式 标题格式一: 行内样式 <!DOCTYPE html> <html lang"en"><head><meta…...
旅游系统旅游小程序PHP+Uniapp
旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统 更新日志 V1.3.0 1、修复富文本标签 2、新增景点入驻【高级版本】3、新增门票核销【高级版】4、新增门票端口【高级版】...
Windows 与 Linux 下 Ping IPv6 地址 | 常用网络命令
注:本文为网络命令相关文章合辑。 未整理去重。 一、IPv6 概述 IPv6 即 “Internet 协议版本 6”,因 IPv4 地址资源面临耗尽问题而被引入以替代 IPv4。IPv6 则提供了理论上多达 2 128 2^{128} 2128 个地址,有效解决地址不足困境。 IPv6 具…...
前端学习一
一 进程与线程 线程是进程执行的最小单位,进程是系统分配任务的最小单位。 一个进程可执行最少一个线程。线程分为子线程和主线程。 主线程关闭则子线程关闭。 二 浏览器进程 浏览器是多进程多线程应用。 进程包括: 浏览器进程 负责程序交互渲染…...
【Python · PyTorch】卷积神经网络(基础概念)
【Python PyTorch】卷积神经网络 CNN(基础概念) 0. 生物学相似性1. 概念1.1 定义1.2 优势1.2.1 权重共享1.2.2 局部连接1.2.3 层次结构 1.3 结构1.4 数据预处理1.4.1 标签编码① One-Hot编码 / 独热编码② Word Embedding / 词嵌入 1.4.2 归一化① Min-…...
Spring Framework 路径遍历漏洞复现(CVE-2024-38819)
hu0x01 产品描述: Spring Framework 是一个功能强大的 Java 应用程序框架,旨在提供高效且可扩展的开发环境。它结合了轻量级的容器和依赖注入功能,提供了一种使用 POJO 进行容器配置和面向切面的编程的简单方法,以及一组用于AOP的模块。0x02 漏洞描述: Spring Framework 存…...
心法利器[122] | 算法面试的八股和非八股讨论
心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2023年新的文章合集已经发布,获取方式看这里:又添十万字-CS的陋室2023年文章合集来袭,更…...
实操给自助触摸一体机接入大模型语音交互
本文以CSK6 大模型开发板串口触摸屏为例,实操讲解触摸一体机怎样快速增加大模型语音交互功能,使用户能够通过语音在一体机上查询信息、获取智能回答及实现更多互动功能等。 在本文方案中通过CSK6大模型语音开发板采集用户语音,将语音数据传输…...
AJAX家政系统自营+多商家家政系统服务小程序PHP+Uniapp
一款同城预约、上门服务、到店核销家政系统,用户端、服务端、门店端各端相互依赖又相互独立,支持选择项目、选择服务人员、选择门店多种下单方式,支持上门服务和到店核销两种服务方式,支持自营和多商家联营两种运营模式࿰…...
LiveData源码研究
LiveData 源码分析 前言 用过MVVM的大概知道LiveData可以感知组件的生命周期,当页面活跃时,更新页面数据, 当页面处于非活跃状态,它又会暂停更新,还能自动注册和注销观测者,能有效避免内存泄漏和不必要的…...
Root软件学习
一、命令行输入下方命令打开root文件 root filename.root 二、在root命令行下输入.help查看root下可用的指令 .help输入.q是退出root命令行 .q 三、输入下方指令查看当前打开的root文件的目录 .ls 四、打印Hits树下的内容(print) 方框里是各种树文…...
研发文档管理系统:国内外9大选择比较
文章主要对比了9款国内外研发文档管理系统:1.PingCode; 2. Worktile; 3. 飞书; 4. 石墨文档; 5. 腾讯文档; 6. 蓝湖; 7. Confluence; 8. Notion; 9. Slab。 在企业研发过…...
centos 7.9 freeswitch1.10.9环境搭建
亲测版本centos 7.9系统–》 freeswitch1.10.9 一、下载插件 yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2...
嵌入式驱动开发详解17(CAN驱动开发)
文章目录 前言CAN简介CAN收发器CAN协议讲解电气特性传输协议数据帧遥控帧错误帧过载帧帧间隔 同步矫正 CAN控制器CAN控制器模式CAN接收器CAN波特率 CAN设备树分析CAN测试后续参考文献 前言 该专栏主要是讲解嵌入式相关的驱动开发,但是由于部分模块的驱动框架过于复…...