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

Memcached 主主复制架构搭建与 Keepalived 高可用实现

实验目的

  1. 掌握基于 repcached 的 Memcached 主主复制配置

  2. 实现通过 Keepalived 的 VIP 高可用机制

  3. 验证数据双向同步及故障自动切换能力


实验环境

角色IP 地址主机名虚拟 IP (VIP)
主节点10.1.1.78server-a10.1.1.80
备节点10.1.1.79server-b10.1.1.80
  • 操作系统: CentOS 7

  • 软件版本: memcached-1.2.8-repcached-2.2

一、搭建memcached 主主复制

Memcached 的复制功能支持多个 Memcached 之间相互复制(双向复制,主备都是可读可写的),可以解决 Memcached 的容灾问题。

memcached 本身不支持相互复制,若已安装,需要卸载rpm 安装的memcached ,换带有支持复制功能的memcached;

yum -y remove memcached

(1)环境准备

假设有两台服务器用于 Memcached 主主复制,分别为 Server A(10.1.1.78)和 Server B(10.1.1.79)。确保两台服务器都运行 CentOS 7 系统,并且网络可以正常通信。

注意实验时需要设置防火墙规则,学习时期可直接关闭防火墙,因此两台虚拟机都需关闭防火墙

​
sudo firewall-cmd --add-port=11211/tcp --permanent 
sudo firewall-cmd --reload#注意也可以执行以下命令关闭防火墙(centos7中若要关闭防火墙两个都要关,具体使用规则可查看本人其他博客)
systemctl stop firewalld
systemctl stop iptables

(2)安装依赖

在两台服务器上都执行以下命令安装编译所需的依赖:

yum install -y gcc make libevent-devel

(3)下载并安装支持复制的 Memcached(repcached)

repcached 是实现 Memcached 复制功能的扩展,以下是安装步骤:

下载下面的压缩包并上传两台虚拟机,并执行wgte命令下载 repcached

Docs

wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz

如果上述链接不可用,你可以在 SourceForge 等网站上查找合适的版本。

(4)解压文件

tar zxvf memcached-1.2.8-repcached-2.2.tar.gz
ls  
cd memcached-1.2.8-repcached-2.2

(5)置编译选项

./configure --prefix=/usr/local/memcached  --enable-replication --with-libevent=/usr/lib64/ 

(6) 编译并安装

make clean
make &&make install

编译过程中若报错,处理后再编译:

修改memcached.c,删除两行如下图所示,大概在五十多行左右,可输入命令行:set nu显示行数

修改 replication.c文件,增加红色框住的一行

(7)配置主主复制

1. 启动 Server A 的 Memcached
#创建对应的用户
useradd  memcached
​
#进到对应目录启动服务
cd /usr/local/memcached/bin
./memcached -d -u memcached -m 64 -l 10.1.1.78 -p 11211 -x 10.1.1.79
​
注:若配合调度器上面的指令改成
./memcached -d -u memcached -m 64 -l 0.0.0.0 -p 11211 -x 10.1.1.79
​
​
#启动服务后一定要查看进程,看到底服务启动没
netstat -naptl |grep memcached
​
注:netstat 这个网络指令来源于net-tools 这个软件包,没有就自己安装!
sudo yum install net-tools​
#停掉服务的方法
pkill -9 memcached

参数说明:

  • -d:以守护进程模式运行。
  • -u root:以 root 用户身份运行。
  • -m 64:分配 64MB 内存给 Memcached。
  • -l 10.1.1.78:监听的 IP 地址。
  • -p 11211:监听的端口。
  • -x 10.1.1.79:指定要同步数据的对端服务器 IP。

2. 启动 Server B 的 Memcached
#创建对应的用户
useradd  memcached
​
#进到对应目录启动服务
cd /usr/local/memcached/bin
./memcached -d -u memcached -m 64 -l 10.1.1.79 -p 11211 -x 10.1.1.78
​
注:若配合调度器上面的指令改成
./memcached -d -u memcached -m 64 -l 0.0.0.0 -p 11211 -x 10.1.1.78
​
​
#启动服务后一定要查看进程,看到底服务启动没
netstat -naptl |grep memcached
​
注:netstat 这个网络指令来源于net-tools 这个软件包,没有就自己安装!
sudo yum install net-tools​
#停掉服务的方法
pkill -9 memcached

(8)验证主主复制

注意若没有telnet命令可自行下载

sudo yum install telnet -y
1. 在 Server A 插入数据
telnet 10.1.1.78 11211 
set test 0 0 5 
hello 
quit 
2. 在 Server B 验证数据
telnet 10.1.1.79 11211 
get test

如果能获取到在 Server A 上插入的数据,说明主主复制配置成功。同理,在 Server B 上插入数据,也应该能在 Server A 上获取到。

注意:同步的前提,使用相同用户启动服务;

二、搭建memcached 主主复制+keepalived 高可用

(1)在两个节点上都安装keepalived

yum -y install keepalived ipvsadm

(2)在10.1.1.78 上的配置

cd /etc/keepalived/
vi keepalived.conf
# 清空原文件并写入以下内容(示例为10.1.1.78主节点配置)
cat > /etc/keepalived/keepalived.conf <<'EOF'
! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL
}vrrp_script chk_memcached {script "/usr/bin/pgrep memcached"  # 检测Memcached进程interval 2weight -20
}vrrp_instance VI_1 {state MASTER                       # 主节点设为MASTER,备节点设为BACKUPinterface ens33                    # 网卡名(通过ip addr查看实际名称)virtual_router_id 51priority 100                       # 备节点改为90advert_int 1authentication {auth_type PASSauth_pass 1111                 # 密码需主备一致}virtual_ipaddress {10.1.1.80/24                  # 虚拟IP(VIP)}track_script {chk_memcached}
}
EOF

在10.1.1.79上,仅修改state和priority

cat > /etc/keepalived/keepalived.conf <<'EOF'
! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL_79  # 唯一标识,建议改为节点相关名称
}vrrp_script chk_memcached {script "/usr/bin/pgrep memcached"  # 检测Memcached进程interval 2weight -20
}vrrp_instance VI_1 {state BACKUP                      # 明确指定为备节点interface ens33                   # 网卡名(需与ip addr显示一致)virtual_router_id 51              # 必须与主节点相同priority 90                       # 优先级低于主节点(100)advert_int 1authentication {auth_type PASSauth_pass 1111                # 密码与主节点一致}virtual_ipaddress {10.1.1.80/24                 # 相同的虚拟IP}track_script {chk_memcached}
}
EOF

(3)启动keepalived

systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived

(4) 测试故障切换

ip addr show ens33
pkill -9 memcached

最开始:

查看10.1.1.78,此时有10.1.1.80的VIP,

查看10.1.1.79,没有10.1.1.80的VIP

手动停止memcached后:

 在 主10.1.1.78上

pkill -9 memcached

观察vip 飘逸

78上没有80,79上有80

实验结论

  1. 主主复制有效性

    • 数据在 10.1.1.78 和 10.1.1.79 之间实现双向同步,写入任一节点的数据均能实时同步至对端。

    • 通过 stats replication 确认复制状态为 connected,同步字节数 (replication_bytes) 持续增长。

  2. 高可用性验证

    • 当主节点 Memcached 服务终止时,Keepalived 在 2秒内 将 VIP (10.1.1.80) 漂移至备节点。

    • 客户端通过 VIP 访问服务无感知中断,实现无缝故障转移。

  3. 关键问题与解决

    • 编译错误: 通过修改 memcached.c 定义 IOV_MAX 解决。

    • 同步失败: 因防火墙未放行 11212 复制端口,关闭防火墙后恢复正常。


实验总结

本次实验成功构建了 Memcached 主主复制集群,并结合 Keepalived 实现高可用。关键成果包括:

  1. 数据冗余:双向复制确保单节点故障时数据不丢失。

  2. 服务连续性:VIP 机制保障客户端访问零中断。

  3. 可扩展性:架构支持后续添加更多节点。

相关文章:

Memcached 主主复制架构搭建与 Keepalived 高可用实现

实验目的 掌握基于 repcached 的 Memcached 主主复制配置 实现通过 Keepalived 的 VIP 高可用机制 验证数据双向同步及故障自动切换能力 实验环境 角色IP 地址主机名虚拟 IP (VIP)主节点10.1.1.78server-a10.1.1.80备节点10.1.1.79server-b10.1.1.80 操作系统: CentOS 7 软…...

详解 Servlet 处理表单数据

Servlet 处理表单数据 1. 什么是 Servlet&#xff1f;2. 表单数据如何发送到 Servlet&#xff1f;2.1 GET 方法2.2 POST 方法 3. Servlet 如何接收表单数据&#xff1f;3.1 获取单个参数&#xff1a;getParameter()示例&#xff1a; 3.2 获取多个参数&#xff1a;getParameterV…...

八大排序——冒泡排序/归并排序

八大排序——冒泡排序/归并排序 一、冒泡排序 1.1 冒泡排序 1.2 冒泡排序优化 二、归并排序 1.1 归并排序&#xff08;递归&#xff09; 1.2 递归排序&#xff08;非递归&#xff09; 一、冒泡排序 1.1 冒泡排序 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换…...

高等数学第三章---微分中值定理与导数的应用(3.1微分中值定理3.2洛必达法则)

3.1 微分中值定理 一、罗尔&#xff08;Rolle&#xff09;中值定理 1. 费马&#xff08;Fermat&#xff09;引理 定义&#xff1a; 设函数 y f ( x ) y f(x) yf(x) 满足以下条件&#xff1a; 在点 x 0 x_0 x0​ 的某邻域 U ( x 0 ) U(x_0) U(x0​) 内有定义&#xff1…...

AI超级智能体项目教程(二)---后端项目初始化(设计knif4j接口文档的使用)

文章目录 1.选择JDK的版本和相关配置2.添加依赖信息2.1指定lombok版本信息2.2引入hutool工具类2.3了解knif4j依赖2.4引入knif4j依赖 3.contrller测试3.1完成yml文件配置3.2修改默认扫描路径3.3controller具体的内容3.4配置接口和访问路径3.5如何访问3.6调试接口3.6调试接口 1.选…...

C++面试复习日记(8)2025.4.25,malloc,free和new,delete的区别

1&#xff0c;malloc&#xff0c;free和new&#xff0c;delete的区别 答&#xff1a;malloc和free是c语言中库函数&#xff1b; new和delete是c的操作符&#xff1b; 分配内存&#xff1a;malloc和new 区别&#xff1a; malloc&#xff1a;需要手动计算存储空间 new&#…...

14.ArkUI Radio的介绍和使用

ArkUI Radio 组件介绍与使用指南 什么是 Radio 组件&#xff1f; Radio&#xff08;单选框&#xff09;是 ArkUI 中的单选按钮组件&#xff0c;允许用户从一组互斥的选项中选择一个选项。它通常用于表单、设置界面等需要用户做出单一选择的场景。 Radio 的核心特性 单选功能…...

数据结构------C语言经典题目(7)

1.系统栈和数据结构中的栈有什么区别&#xff1f; 1.本质&#xff1a; 系统栈&#xff1a;由程序运行时由操作系统自动分配的一块连续内存区域&#xff0c;用于存储函数调用过程中的临时数据&#xff08;参数、局部变量、返回地址&#xff09;&#xff0c;是程序运行的底层机制…...

Python教程(一)——Python速览

目录 1. 引言2. Python用作计算器2.1 数字2.2 文本2.3 列表 3. 走向编程的第一步参考 1. 引言 本系列的目的主要是重新回顾Python的语法&#xff0c;以供阅读由Python编写的源码。   在安装完Python后&#xff0c;在命令行中输入python就可以进入交互模式。下文代码段中以>…...

跟我学C++中级篇——处理对象的复制

一、对象的传递 在应用程序中&#xff0c;经常会遇到不同线程或不同模块间需要进行对象的传递&#xff0c;本来传递不是什么多大的事。但问题是&#xff0c;如果对象的值大到一定的程度后&#xff0c;传递不是问题可对象值的处理反而成了问题了。举一个现实世界的例子&#xf…...

基于PyQt5实现仿QQ-第二章-用户登录

基于PyQt5实现仿QQ-第二章-用户登录 Author: Daydreamer 项目简介 本项目基于PyQt5仿照目前流行的即时通信软件QQ&#xff0c;实现了新用户注册、用户登录、自动登录、记住多用户账号、用户搜索、添加好友、好友间聊天&#xff08;消息持久化、同步化&#xff09;等功能。 …...

[OS_8] 终端和 UNIX Shell | 会话和进程组 | sigaction | dash

我们已经知道如何用 “文件描述符” 相关的系统调用访问操作系统中的对象&#xff1a;open, read, write, lseek, close。操作系统也提供了 mount, pipe, mkfifo 这些系统调用能 “创建” 操作系统中的对象。 当然&#xff0c;我们也知道操作系统中的对象远不止于此&#xff0…...

IP查询专业版:支持IPv4/IPv6自动识别并切换解析的API接口使用指南

以下是根据您提供的网页内容编辑的符合CSDN内容发布要求的Markdown格式文本&#xff1a; 一、API概述 在开发过程中&#xff0c;我们常常需要对IP地址进行查询&#xff0c;以获取其详细信息&#xff0c;如地理位置、运营商等。万维易源的“IP查询专业版”API接口能够提供丰富…...

ESG跨境电商如何为国内的跨境电商企业打开国外的市场

现在不管是国内还是国外&#xff0c;做电商的企业都非常的多&#xff0c;那么既然有这么多大电商公司&#xff0c;就要有为这些电商公司提供服务的公司&#xff0c;这就是ESG&#xff0c;它是专门为跨境电商服务的公司&#xff0c;那么这家公司的主要业务是什么呢&#xff1f;它…...

建筑节能成发展焦点,楼宇自控应用范围持续扩大

在全球能源危机日益严峻、环保意识不断增强的大环境下&#xff0c;建筑节能已成为建筑行业发展的核心议题。从大型商业综合体到普通住宅&#xff0c;从公共建筑到工业厂房&#xff0c;节能需求贯穿建筑全生命周期。而楼宇自控系统凭借其对建筑设备的智能化管理和精准调控能力&a…...

中国矿业大学iGMAS分析中心介绍

一、关于GNSS和iGMAS 在浩瀚的太空中&#xff0c;全球卫星导航系统&#xff08;GNSS&#xff09;构建起精准定位的时空基准。IGMAS——国际GNSS监测评估系统&#xff0c;是由中国倡导并主导建设的全球GNSS监测网络&#xff0c;旨在提供高精度、高可靠的导航、定位与授时服务。 …...

python如何取消word中的缩进

在python-docx中&#xff0c;取消缩进可以通过将相应的缩进属性设置为None或0来实现。以下是取消不同类型缩进的方法&#xff1a; 取消左缩进 from docx import Documentdoc Document(existing_document.docx)for paragraph in doc.paragraphs:# 取消左缩进paragraph.paragr…...

Lesar: 面向 Lustre/Scade 语言的形式化模型检测工具

在《同步反应式系统》的第一课中&#xff0c;介绍了同步数据流语言 Lustre 生态中的形式化模型检查器 Lesar 的用法。Lesar 可对 lustre v4 语言以及 Scade 语言中部分数据流核心特性进行模型检查。 Lesar 介绍 Lesar 是 Verimag 研发维护的形式化方法模型检查工具。该工具的理…...

YOLOv12 改进有效系列目录 - 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制 - 针对多尺度、小目标、遮挡、复杂环境、噪声等问题!

&#x1f525; 在 YOLO 系列一路狂飙之后&#xff0c;YOLOv12 带来了令人耳目一新的范式转变——它不再以 CNN 为绝对核心&#xff0c;而是首次 围绕注意力机制构建 YOLO 框架&#xff0c;在保证实时性的前提下&#xff0c;将检测精度再次推向新高度&#xff01; 为了进一步探…...

STM32 I2C总线通信协议

引言 在嵌入式系统开发领域&#xff0c;I2C&#xff08;Inter-Integrated Circuit&#xff09;总线作为经典的双线制串行通信协议&#xff0c;凭借其简洁的物理层设计和灵活的通信机制&#xff0c;在传感器互联、存储设备控制、显示模块驱动等场景中占据重要地位。本文将深入剖…...

多物理场耦合低温等离子体装置求解器PASSKEy2

文章目录 PASSKEy2简介PASSKEY2计算流程PASSKEy2 中求解的物理方程电路模型等离子体模型燃烧模型 PASSKEy2的使用 PASSKEy2简介 PASSKEy2 是在 PASSKEy1 的基础上重新编写的等离子体数值模拟程序。 相较于 PASSKEy1&#xff0c; PASSKEy2 在具备解决低温等离子体模拟问题的能力…...

【Harmony_Bug】forEach + asyncawait 的异步陷阱

一、问题描述 今天在做一个RDB的小项目时&#xff0c;遇到一个问题&#xff0c;因为没报错其实也是不算是BUG&#xff0c;以下描述时我就直接说关键点&#xff0c;其他代码忽略。 我的数据模型初始化有六条数据如图 在持久化层&#xff0c;通过initUserData这个方法执行插入。…...

智慧医院建设的三大关键领域

智慧医院建设是医疗行业数字化转型的核心载体&#xff0c;其本质是通过新一代信息技术重构医疗服务模式、优化管理流程、提升患者体验。在当前医疗资源供需矛盾突出的背景下&#xff0c;智慧医院建设已从单纯的设备智能化向系统性变革演进&#xff0c;主要集中在以下三大关键领…...

雷电模拟器怎么更改IP地址

游戏搬砖会使用雷电模拟器多开窗口&#xff0c;若模拟器窗口开多了&#xff0c;IP地址是一样的就怕有限制&#xff0c;很容易被游戏后台检测到。在雷电模拟器中更改IP地址可以通过以下方法实现&#xff1a; 方法一&#xff1a;通过模拟器内设置代理 1. 打开雷电模拟器 启动雷…...

软件编程命名规范

编程命名规范是保证代码可读性、可维护性和团队协作效率的重要基础。以下是涵盖主流编程语言的通用命名规范&#xff0c;结合行业最佳实践和常见规范&#xff08;如Google、Microsoft、Airbnb等风格指南&#xff09;&#xff1a; 一、通用命名原则 清晰优先&#xff1a;名称应…...

#什么是爬虫?——从技术原理到现实应用的全面解析 VI

什么是爬虫?——从技术原理到现实应用的全面解析 V 二十六、异构数据采集技术突破 26.1 PDF文本与表格提取 import pdfplumber import pandas as pddef extract_pdf_data(pdf_path):"""从PDF中提取文本和表格数据:param pdf_path: PDF文件路径:return: 包含…...

芯岭技术XL32F003单片机 32位Cortex M0+ MCU简单介绍 性能优异

XL32F003单片机是深圳市芯岭技术有限公司的一款基于 32 位 ARM Cortex-M0 内核的高性能微控制器&#xff0c;提供SOP8/SOP14/SOP16/TSSOP20/SSOP24/QFN20/QFN32多种封装可选&#xff0c;可满足不同设计需求。XL32F003可用于工业控制、手持设备、PC 外设、传感器节点等应用场景&…...

使用浏览器的Clipboard API实现前端复制copy功能

在前端开发中&#xff0c;复制文本到剪贴板的功能通常使用浏览器的 Clipboard API 实现。比如 navigator.clipboard.writeText 方法。以下是一个简单的案例&#xff0c;展示如何使用 Clipboard API 实现复制文本的功能。 基本用法 首先&#xff0c;你需要创建一个按钮&#x…...

Struts2框架学习

文章目录 基础实战配置文件NameSpaces 基础 实战 配置文件 文件1&#xff1a; <?xml version"1.0" encoding"UTF-8"?> // 声明这是一个 XML 文件&#xff0c;且使用 UTF - 8 编码 <!DOCTYPE struts PUBLIC"-//Apache Software Foundat…...

React 实现爱心花园动画

主页&#xff1a; import React, { useEffect, useRef, useState } from react; import /assets/css/Love.less; import { Garden } from /utils/GardenClasses;// 组件属性接口 interface LoveAnimationProps {startDate?: Date; // 可选的开始日期messages?: { // 可…...

CAPL编程_03

1_文件操作的相关函数&#xff1a; 读文本文件内容 读取文本文件操作的三部曲 1&#xff09;打开文件 —— openFileRead ( ) 2&#xff09;逐行读取 —— fileGetString ( ) 、fileGetStringSZ ( ) 3&#xff09;关闭文件 —— fileClose ( ) char content[100];…...

网络准入控制系统:2025年网络安全的坚固防线

在当今数字化时代&#xff0c;网络安全已成为至关重要的议题。阳途网络准入控制系统作为保障网络安全的关键机制&#xff0c;发挥着不可替代的作用。 阳途网络准入控制系统核心目的在于确保只有合法、合规的设备与用户能够接入网络。从本质上讲&#xff0c;它通过一系列技术手段…...

【音视频】⾳频处理基本概念及⾳频重采样

一、重采样 1.1 什么是重采样 所谓的重采样&#xff0c;就是改变⾳频的采样率、sample format、声道数等参数&#xff0c;使之按照我们期望的参数输出。 1.2 为什么要重采样 为什么要重采样? 当然是原有的⾳频参数不满⾜我们的需求&#xff0c;⽐如在FFmpeg解码⾳频的时候…...

自然语言处理将如何颠覆未来教育?个性化学习新纪元

教育领域正经历着自印刷术发明以来最深刻的变革。自然语言处理&#xff08;NLP&#xff09;技术突破传统教育框架的桎梏&#xff0c;正在重塑人类知识传递的基本范式。这场变革的实质不在于教学工具的数字化升级&#xff0c;而在于重新定义了"教"与"学"的本…...

4月25日星期五今日早报简报微语报早读

4月25日星期五&#xff0c;农历三月廿八&#xff0c;早报#微语早读。 1、祝贺&#xff01;神舟二十号载人飞船发射取得圆满成功&#xff1b; 2、文旅部&#xff1a;今年一季度国内出游人次17.94亿&#xff0c;同比增长26.4%&#xff1b; 3、2025五一档新片预售票房破1000万&…...

秒级到毫秒:BFD的速度革命

一、BFD技术概述 ​​双向转发检测&#xff08;BFD&#xff09;​​是一种轻量级的网络协议&#xff0c;专门用于快速检测、监控网络链路或IP路由的连通性状态。作为网络领域的"心跳检测器"&#xff0c;BFD通过毫秒级&#xff08;默认1000ms&#xff09;的快速探测机…...

systemctl 命令详解与常见问题解决

在 Linux 系统中&#xff0c;service 命令和 chkconfig 命令一直用于管理服务&#xff0c;但随着 systemd 的引入&#xff0c;systemctl 命令逐渐成为主流。systemctl 命令不仅功能强大&#xff0c;而且使用简单。本文将详细介绍 systemctl 命令的作用以及常见问题的解决方法。…...

5.6 Microsoft Semantic Kernel:专注于将LLM集成到现有应用中的框架

5.6.1 Semantic Kernel概述 Microsoft Semantic Kernel&#xff08;以下简称SK&#xff09;是一个开源的软件开发工具包&#xff08;SDK&#xff09;&#xff0c;旨在帮助开发者将大型语言模型&#xff08;LLM&#xff09;无缝集成到现有的应用程序中。它支持C#、Python和Java…...

vite+vue构建的网站项目localhost:5173打不开

原因&#xff1a;关掉了cmd命令提示符&#xff0c;那个端口就没有被配置上&#xff0c;打开就是这样的。 解决方法&#xff1a;重新在工作目录下打开cmd&#xff0c;输入npm run dev重新启动项目。 重新出现这样的界面说明已经成功启动项目&#xff0c;再次在浏览器中刷新并输入…...

电脑屏幕录制软件Captura源码编译(Win10,VS2022)

屏幕录像的意义&#xff1a; 教育教学方面 制作教学资源&#xff1a;教师可以通过录制屏幕来制作教学视频&#xff0c;演示软件操作、讲解复杂的知识点等。学生可以随时观看这些视频&#xff0c;便于复习和巩固知识&#xff0c;尤其对于一些抽象的概念或难以在课堂上一次性掌握…...

【版本控制】SVN + TortoiseSVN版本管理实用教程(附安装+开发常用操作)

摘要&#xff1a; 本文将带你从零开始掌握 SVN 版本控制系统&#xff0c;结合 TortoiseSVN 图形客户端工具&#xff0c;深入学习包括安装、检出、提交、更新、回滚、冲突解决等常用开发操作&#xff0c;快速上手团队协作&#xff01; &#x1f9e9; 什么是 SVN&#xff1f; SV…...

常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法

常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法 在Web应用安全领域,SQL注入(SQL Injection)是历史最悠久、危害最广泛的攻击类型之一。据OWASP(开放式Web应用安全项目)统计,SQL注入连续多年稳居“OWASP Top 10”漏洞榜单前列,每…...

DeepSeek智能时空数据分析(三):专业级地理数据可视化赏析-《杭州市国土空间总体规划(2021-2035年)》

序言&#xff1a;时空数据分析很有用&#xff0c;但是GIS/时空数据库技术门槛太高 时空数据分析在优化业务运营中至关重要&#xff0c;然而&#xff0c;三大挑战仍制约其发展&#xff1a;技术门槛高&#xff0c;需融合GIS理论、SQL开发与时空数据库等多领域知识&#xff1b;空…...

day49—双指针+贪心—验证回文串(LeetCode-680)

题目描述 给你一个字符串 s&#xff0c;最多 可以从中删除一个字符。 请你判断 s 是否能成为回文字符串&#xff1a;如果能&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;s "aba" 输出&#xff1a;true…...

AI电视里的达摩

2025年&#xff0c;所有电视都搭载了AI功能&#xff0c;所有电视厂商都在宣传AI能力。但问题是&#xff0c;消费者依旧没有对AI电视做出什么积极的回应。“AI电视是鸡肋”“AI只是电视的又一轮泡沫”等观点层出不穷。 为什么明明AI技术能够解决电视的很多问题&#xff0c;但AI电…...

算力网络(CFN)在跨校联合科研中的应用:安全性挑战与联邦调度实践

引言&#xff1a;科研协作的算力困境 上海交通大学与麻省理工学院联合开展的高能物理模拟实验&#xff0c;因算力资源分配不均导致部分节点连续72小时处于空转状态。这个典型案例揭示了当前跨机构科研协作的痛点&#xff1a;‌算力资源无法实现安全可信的细粒度共享‌。算力网…...

面向对象编程核心:封装、继承、多态与 static 关键字深度解析

面向对象编程核心&#xff1a;封装、继承、多态与 static 关键字深度解析 一、封装&#xff1a;数据安全与接口规范 1. 封装的本质与作用 核心定义&#xff1a;将数据&#xff08;属性&#xff09;与操作数据的方法&#xff08;行为&#xff09;绑定在类中&#xff0c;隐藏内…...

c++进阶——类与继承

文章目录 继承继承的基本概念继承的基本定义继承方式继承的一些注意事项 继承类模板 基类和派生类之间的转换继承中的作用域派生类的默认成员函数默认构造函数拷贝构造赋值重载析构函数默认成员函数总结 不能被继承的类继承和友元继承与静态成员多继承及其菱形继承问题继承模型…...

【CODEMATE】进制转换(transform) 粤港澳青少年信息学创新大赛 C/C++/Python 解题思路

目录 问题描述做题思路&#xff0c;解决过程思路&#xff1a;踩过的坑&#xff1a;核心代码C 语言 / C 切片&#xff1a;C 语言 / C 判断 ‘A’ 数量&#xff1a;Python 切片&#xff1a;Python 判断 ‘A’ 数量&#xff1a; 完整代码C 语言 完整代码C 完整代码Python 完整代码…...

window和ubuntu自签证书

window下 以管理员身份 运行 Windows PowerShell # CN192.168.0.100 (换成自己的IP或者域名) # O(组织) OU(组织单位) # Cert:\LocalMachine\My&#xff1a;证书存储位置 # test_10&#xff1a;自定义证书名称 .AddYears(10): 证书过期时间 10 年 $cert New-SelfSi…...