云计算工程师做 “选择题”
alter table 库名.表名 动作(add/modify/change/drop/rename)www.huawei.com-->商用产品及方案(鲲鹏计算)-->学习与技术支持(产品文档)-->智能服务器。链:INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING。字段权限 --> mysql.tables_priv/mysql.columns_priv。新增
云计算工程师做 “选择题”
软件 --> 组件化的设计思想 nginx -- 模块
第二阶段:
监控与安全:5天
监控解决方案:3
Zabbix
Prometheus
安全:2
kali、扫描与抓包、系统安全加固、服务加固、iptables
项目实战一:2天
高可用负载均衡web集群
----------------------------------------------------------
---------------------------------------------------
集群:
集群分类:
按功能分类:
高性能集群
高可用集群:故障自动切换(备胎)
负载均衡集群:压力分摊
按架构分类:
中心化架构集群
非中心化架构集群
负载均衡软件:
LVS:Linux virtual Server
组成:
内核空间:IPVS框架
用户空间:ipvsadm命令
工作模式:
NAT:地址转换模式 net.ipv4.ip_forward
DR:直连路由模式
TUN:隧道模式
NGINX:能够做web服务器,也能做反向代理服务器
HAPROXY:天生的负载均衡器
负载均衡软件选择:
LVS:负载特别大的站点
NGINX:负载比较小的站点
HAPROXY:负载较大且需要七层会话处理
功能:LVS<HAPROXY<NGINX
性能:LVS>HAPROXY>NGINX
代理和调度:
代理:
负载均衡软件工作于OSI七层
需要对客户端的包进行深层次解析后发往真实服务器
调度:
负载均衡软件工作于OSI四层
无法识别典型的应用层协议,仅做流量调度分发
----------------------------------------------------
存储
解决方案:
硬件层面:存储柜
软件层面:分布式存储系统(SDS:soft define storage)
Ceph:分布式存储解决方案
组件化设计思想
版本:v17 Qunicy
存储提供形式:
块存储
文件存储
对象存储
组件:
MON:monitor,整个集群的监控,绘制OSD地图
MGR:manager,管理组件,提供了一个对于ceph的web管理界面
OSD:objective stroage deamon,负责集群内部的数据存储
MDS:meatadata service,元数据服务器
RGW:rados gateway,网关服务
搭建准备工作:
1、更新自定义yum源ceph相关软件
2、配置hosts文件解析主机名
192.168.88.240 quay.io
3、配置各节点yum源
4、配置时间服务
5、各个节点安装必要软件:podman/python39/lvm2
6、搭建私有镜像仓库
6.1、搭建私有仓库 5000-->80
6.2、导入ceph相关镜像
podman load -i xx.tar
6.3、推送ceph镜像到私有仓库
podman push quay.io/ceph/ceph:v17
7、配置各个节点识别私有镜像仓库
8、Ceph节点关机打快照
搭建流程:
1、初始化集群(cephadm)
# ./cephadm bootstrap \
> --mon-ip 192.168.88.11 \
> --initial-dashboard-password=123456 \
> --dashboard-password-noupdate \
> --skip-monitoring-stack
# podman images | wc -l ==> 2
# podman ps | wc -l ==> 4
2、同步ceph的ssh公钥
# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph1
3、集群扩容
# ceph orch host add ceph2 192.168.88.12
4、绑定OSD组件
a) # ceph orch daemon add osd ceph1:/dev/vdb
b) # ceph orch apply osd --all-available-devices
5、检查集群状态
# ceph -s
# ceph orch ls
补充:清理集群方法
# ceph mgr module disale cephadm
# ceph fsid
# cephadm rm-cluster --force --zap-osds --fsid <fsid>
存储池:pool,Ceph中存储资源类型的逻辑区分
类似于Windows中的文件夹,仅做存储数据类型的区分
块存储:Rados Block Device
优点:读写速度快,多节点IO
缺点:不能用于多节点共享
场景:应用服务器需要进行大量读写操作,典型代表是数据库服务器
COW技术:Copy ON Write,写时复制
文件存储:Ceph FS
优点:允许多客户端同时挂载
缺点:读写速度比块要慢
场景:多机共享文件
对象存储:Ceph Rados Gateway, web服务
优点:适用于非结构化数据
缺点:开发难度大
场景:网站资源解耦(网页资源与静态资源分离)
数据分类:
结构化数据:可以存储到关系型数据库中的数据,典型代表字符串
非结构化数据:不适合存储到数据库中的数据,典型代表图片
==========================================================================
Zabbix监控方案:对服务器直接进行监控
组成部分:
C/S:数据采集、数据存储
B/S:数据展示、配置
组件:
MySQL:数据持久化存储
zabbix-server:接收agent采集的数据,写入到MySQL
zabbix-agent:负责数据采集,传递采集数据
zabbix-web:数据展示
核心概念:
主机:被监控端,通常是安装了agent的服务器或支持SNMP协议的网络设备
主机群组:主机分类,便于查找
监控项:数据采集单位,每个监控项对应一个数据采集点(key)
模板:监控项的分组,便于新增设备时绑定对应的监控项
触发器:定义阈值,表现形式为一个表达式
触发器动作:触发器中定义的阈值被触发后的行为
自动发现规则:定义符合条件的规则
自动发现动作:符合自动发现条件的主机如何处理
自定义监控项:
语法:UserParameter=键值,脚本(shell命令)
语法:UserParameter=键值[*],脚本(shell命令) $1
监控模式:(针对于被监控端)
被动模式:server向agent发起索要数据的请求,agent接收到请求后将数据发送给server
表现:
zabbix-agent服务监听固定端口10050用于连接建立和数据传输
主动模式:agent按照指定的时间间隔将采集到的数据推送给server
表现:
zabbix-agent服务不监听固定端口
推送数据时临时启用一个高位端口,传输完成断开连接
--------------------------------------------------------------------------
Prometheus:适用于监控云原生领域容器相关指标的一款开源监控方案
组件:
prometheus-server:数据接收、存储、展示
xx-exporter:数据采集单位
push-gateway:push模式下数据中转站
alertmanager:报警组件
grafana:数据展示组件
工作模式:
pull模式:prometheus-server主动找exporter索要数据
push模式:exporter主动将数据推送到push-gateway,然后回传到server
alertmanager特性:
去重、分组、路由、抑制、静默
------------------------------------------------------------------------------
安全:
kali:一款基于debain分支的Linux发行版,广泛应用于网络安全领域
nmap:基于scan方式的强大扫描工具,可实现网段、主机、多端口、弱口令爆破等功能
-sP/-sS/-sT/-sU/-A --script
加密方法:对称加密、非对称加密
tcpdump -i 网卡 -A -w 文件名 -r 文件名
网站攻击方式:
DoS:Deny of Service
DDoS:Distribute Deny of Service
用户管理:chage /passwd
文件安全:i / a
iptables:Linux上的软件防火墙
组成部分:
内核空间:NET-FILTER
用户空间:iptables
工作模式:
主机型防火墙
网络型防火墙
四表五链:
表:raw/mangle/nat/filter
链:INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING
默认规则设置方式:
白名单:默认禁止,添加放行规则
黑名单:默认放行,添加禁止规则
选项:
-nL/-F/-A/-I/-D/-P
-m state/multiport/iprange
地址转换:
源地址转换:适用场景为多用户上网,内部网络数据包穿过路由器后做地址转换
-j SNAT --to-source xxx/-j MASQUERADE
目标地址转换:适用场景为服务发布,外部网络数据包进入路由器前进行地址转换
-j DNAT --to-destination xxx
=================================================================================
项目实战一:
业务知识补充:
开发分类:
前端:网站上目之所及的所有内容归类到前端
后端:眼睛看不到的内容归类到后端
开发语言:
前端:HTML/CSS/JS
后端:Java/python/php/c++/Go
解释型语言:python/php
编译型语言:C、C++/Go
服务:
前端:nginx/httpd
后端:Tomcat/php-fpm/uWSGI
前后端数据交互:动静分离
项目结构设计:
前后端不分离开发-->一个业务对应一套代码
前后端分离开发 -->一个业务对应多套代码
架构演变设计:
单机部署(ALL IN ONE)-->纵向拆分(服务分离)-->横向扩展(并发请求处理)
Linux操作系统安装:
单机:光盘、U盘(UltraIOS)、再生龙
批量:PXE/Cobbler
服务器硬件:http://www.tmooc.cn/course/300254.shtml
www.huawei.com-->商用产品及方案(鲲鹏计算)-->学习与技术支持(产品文档)-->智能服务器
=====================================================================================
第三阶段:
数据库(10天):
MySQL(8天)
MySQL使用:5
SQL语句
MySQL索引
MySQL用户权限管理体系
MySQL数据备份与还原:1
备份方法
备份策略
MySQL架构设计:2
MySQL主从同步
MySQL读写分离
MySQL分库分表
Redis(2天)
Redis的基础使用、数据类型、数据持久化
Redis架构设计
Redis主从同步
Redis哨兵服务
Redis分布式高可用集群
项目实战(4天):
HIS医疗信息系统:Springboot+VUE
CICD技术路线:Git+GitLab+Jenkins+(ssh/ansible)
-------------------------------------------------------------------------------
数据库:
是在服务端实现数据存储的一类软件的统称
分类:
关系型数据库
1、数据持久化存储
2、数据结构化存储
3、数据与数据之间可以建立关联关系
4、通常具备体系化的SQL语句
非关系型数据库
1、数据灵活存储
2、数据通常存储于内存
3、通常不具备体系化的SQL语句
--------------------------------------------------------
SQL语句:
MySQL登录方法(选项和参数间不留空格):
# mysql -h数据库服务器地址 -P数据库服务端口 -u用户 -p密码
MySQL密码管理:
已知密码:
# mysqladmin -u用户 -p'旧密码' password '新密码'
-> alter user 用户@地址 identified by '新密码';
未知密码(root用户密码破解):
skip_grant_tables
命令行补全工具:
[root@mysql50 ~]# python3 -m pip install --upgrade pip
[root@mysql50 ~]# python3 -m pip install mycli==1.2.0
使用mycli命令代替mysql命令
图形工具:
phpMyAdmin
DBeaver
MySQL-WorkBench
操作分类:
读操作:select
写操作:insert/update/delete
查询语句:
语法:
select 字段列表 from 库名.表名
[连接方式] join 库名.表名 on 连接条件
...
where 分组前筛选
group by 分组字段
having 分组后筛选
order by 排序字段
limit 分页
SQL语句执行顺序:
FROM子句:确定数据来源,包括JOIN的表
ON:执行JOIN条件
JOIN:如果有JOIN,根据JOIN类型(如INNER、LEFT),将相关行组合起来
WHERE子句:过滤记录
GROUP BY子句:根据指定的列分组记录
聚合函数:分组后对分组外其他字段进行聚合处理
HAVING子句:过滤分组
SELECT子句:选取特定的列
DISTINCT子句:去除重复数据
ORDER BY子句:最后对结果进行排序
LIMIT子句:限制输出行数
多表查询:
连接方式:
交叉连接:笛卡尔积
内连接:inner
外连接
左外连接:left
右外连接:right
全外连接:full(MySQL中不支持full) union
连接条件:
等值连接
不等值连接
嵌套查询(子查询):多个select语句进行拼接
where后: select语句的结果作为条件
having后: select语句的结果作为条件
from后: select语句的结果作为临时表
select后: select语句的结果作为临时字段
条件筛选:
数值比较:</<=/>/>=/=/!=
字符串比较:=/!=
范围匹配:in/not in/between x and y
模糊匹配:like _ %
正则匹配:regexp
逻辑运算:and/or/not && || ! ()
空与非空:IS NULL/IS NOT NULL
查询结果处理:
别名:as
去重:distinct
结果拼接:concat(),concat_ws()
聚合函数:count()/max()/min()/avg()/sum()
分组: group by
分组后过滤: having
排序: order by
分页: limit
关于where与having:
作用:查询数据中申明筛选条件
区别:
对于表中真实的字段筛选用where
对于select过程中做出来的临时字段用having
核心:
group by 后边只能用having
内置函数:
字符函数:
length()/char_length()/upper()/lower()
substr()/instr()/trim()
数学函数:
abs()/pi()/ceil()/floor()/mod()/round()
日期时间函数
now()/curdate()/curtime()
date()/time()
year()/month()/day()/hour()/minute()/second()
week()/weekday()/monthname()/dayname()
quarter()/dayofyear()/dayofmonth()
加密函数:md5()
聚合函数:
count()/max()/min()/avg()/sum()
数学计算
流程控制函数:if()/ifnull()/case
表记录管理语句:
新增:insert into 库名.表名(字段列表) values (行1),(行2)...;
修改:update 库名.表名 set 字段1=值,字段2=值... where 条件筛选;
删除:delete from 库名.表名 where 条件筛选;
库表管理:
库管理
create/alter/drop database
show databases
show create database
表管理
create/alter/drop/desc table
show tables from 库名
show create table
alter table 库名.表名 动作(add/modify/change/drop/rename)
create table xx select * from xx
create table xx like xx
数据类型
字符类型:char/varchar/text/blob
数值类型:
整型:tinyint/smallint/mediumint/int/bigint
浮点型:float/double
unsigned
日期时间类型:date/time/year/datetime/timestamp
枚举类型:enum/set
数据导入导出
导入:
load data infile "文件" into 库名.表名
fields terminated by 列分隔符
lines terminated by 换行符
导出:
select 字段列表 from 库名.表名 into outfile "文件"
fields terminated by 列分隔符
lines terminated by 换行符
表约束
基础约束
空与非空:not null
默认值:default
高级约束
唯一约束:unique,字段值唯一,可以赋空值,一张表中可以有多个
主键约束:primary key,字段值唯一且不能为空,一张表中只能有一个
自增约束:auto_increment,主键不一定自增,但自增一定是主键
外键约束:foreign key,建立表与表之间数据的关联
SQL语句分类:
DDL:database define language,数据定义语句
create/alter/drop
DML:database manager language,数据操作语句
insert/update/delete
DQL:database query language,数据查询语句
select/show
DCL:database control language,数据控制语句
grant/revoke
TCL:transcation control language,事务控制语句
begin/commit/savepoint/rollback
事务:
针对于DML
一组SQL语句要么全部执行,要么全部不执行
是保证数据准确性的机制
特性:
原子性(Auomicity):在一个事务中,像增删改(DML)要么全部成功,要么全部失败
一致性(Consistency):事务完成时必须所有数据都保持一致状态
隔离性(Isolation):多个事务的执行是互不干扰的
持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
存储引擎:InnoDB、MyISAM、MEMORY > show engines;
索引:加速查询速度的一种数据结构
分类:
按作用效果:针对于字段值
普通索引:index
唯一索引:unique
主键: primary key
按存储形式
聚簇索引:数据和索引在一起
非聚簇索引:数据和索引不在一起
按数据结构:
树型索引:btree、b+tree,正排表:根据行号找内容
哈希索引:hash
全文索引:fulltext
空间索引
按作用字段
单列索引:作用于单个字段
复合索引:作用于多个字段,使用时从左往右匹配
用户权限管理:
用户管理:
create/alter/drop/rename user
权限管理:
grant/revoke
flush privileges
权限二阶段验证:
一阶段:用户登录权限
二阶段:SQL执行权限
权限分布:
用户信息 --> mysql.user
全局权限 --> mysql.user
库权限 --> mysql.db
表权限 --> mysql.tables_priv
字段权限 --> mysql.tables_priv/mysql.columns_priv
=============================================================================
数据备份:(保证数据安全)
三要素:
BW、RPO、RTO
方式:
冷备份:cp/tar/zip,数据库服务停止的状态下完成数据备份操作
温备份:mysqldump,数据库运行状态下完成数据备份,但数据库的写操作会被阻塞
热备份:xtrabackup,数据库运行状态下完成数据备份,数据库读写操作不受影响
--host / --port / --user / --password / --datadir / --backup
--target-dir / --incremental-basedir
--prepare / --apply-log-only / --incremental-dir /--copy-back
文件:
物理备份:数据库磁盘文件
逻辑备份:SQL语句
策略:
完整备份:备份所有数据(单库单表的所有数据也归此类)
部分备份:备份部分数据(以某一个备份点为参考点)
差异备份:部分备份都以完整备份为参考点
增量备份:部分备份以上一次备份为参考点
实时备份:binlog日志,记录MySQL执行过的所有的写操作的语句
binlog日志管理:
配置:log_bin
查看日志:
show master status #当前使用的
show binary logs #所有的
刷新日志:
1、达到默认大小自然刷新
2、flush logs
3、mysqldump --flush-logs
4、重启MySQL服务
清理日志:
1、自动清理
2、purge master logs to xx
3、reset master
恢复数据:
mysqlbinlog binlog.000001 | mysql
推荐方案:
1、冷备份 开发、测试环境
2、mysqldump+lvm-snapshot 内部系统,数据量小
3、mysqldump+binlog 内部系统,数据量中
4、xtrabackup 外部业务,数据量大
MySQL中的锁:
类型:
读锁:共享锁
写锁:排它锁
粒度:
表级锁
页级锁
行级锁
================================================================================
MySQL架构:
MySQL主从同步:解决多个数据库服务器数据实时同步的解决方案
工作原理:通过复现主服务器binlog日志中SQL语句的方式实现数据实时同步
结构模式:(宏观模式),区分数据库服务器的角色
一主一从:搭建简单,数据副本数少
一主多从:数据多副本且无关联,主节点负载高
级联复制:相对主节点负载低,数据多副本但有关联
互为主从:多节点写,易出现死锁
复制模式:(微观模式),保证MySQL主从同步性能
异步复制:主服务器处理完SQL直接返回结果
半同步复制:主服务器处理完SQL等待至少1个从完成数据同步后返回结果
全同步复制:主服务器处理完SQL等待所有从完成数据同步后返回结果
搭建流程:
主服务器:
1、安装MySQL并启动服务
2、配置binlog日志和server_id
3、授权主从同步用户
4、备份已有数据
从服务器:
1、安装MySQL并启动服务
2、还原主服务器备份数据
3、配置server_id(从服务器不严格要求启用binlog日志)
4、change master to语句 设置主服务器信息
master_host=主服务器地址
master_port=主服务器端口
master_user=登录主服务器用户
master_passowrd=登录主服务器密码
master_log_file=主服务器正在使用的binlog日志
master_log_pos=主服务器当前偏移量
5、启动io/sql线程,start slave
错误处理:
> stop slave; #停止io/sql线程
> reset slave all; #重置主从信息
> change master to 语句 #重新配置主从同步
> start slave; #启动io/sql线程
MySQL读写分离:解决MySQL主从同步中主服务器负载高的解决方案
实现方法:
客户端分离:开发者手工分离
服务端分离:加设MySQL主从复制组的代理服务器
工作原理:识别SQL类型按照主写读从的规则进行分发
解决方案:
mysql-proxy/mysql-router/maxscale
amoeba/cobar/mycat/mycat2
atlas/kingshard/vitees
mycat2配置:
维度:
用户/数据源/集群/逻辑库
配置方法:
冷配置:手搓配置文件,重启服务生效
热配置:命令行/管理接口命令操作,即时生效
MySQL分库分表:解决单个MySQL存储上限的解决方案
实现方法:
存储层面:利用分布式存储解决方案
MySQL层面:分库分表机制
工作原理:将原本存放于1台数据库服务器上的数据分散存储到多个机器上
常用设计思路:
垂直分库+水平分表
解决方案:
mycat/mycat2/shardingsphere/vitees
###############mycat2热配置模板####################
# 用户管理
/*+ mycat: showusers{} */;
/*+ mycat: createuser{"name":"xx","password":"xx"...} */;
/*+ mycat: dropuser{"name":"xx"} */;
# 数据源管理
/*+ mycat: showdatasources{} */;
/*+ mycat: createdatasource{"name":"xx"...} */;
/*+ mycat: dropdatasource{"name":"xx"} */;
# 集群管理
/*+ mycat: showclusters{} */;
/*! mycat: createcluster{"name":"xx"...} */;
/*! mycat: dropcluster{"name":"xx"} */;
# 逻辑库表管理
/*+ mycat: showschemas{} */;
/*+ mycat: createschema{"name":"xx"...} */;
/*+ mycat: dropschema{"name":"xx"} */;
/*+ mycat: createdatasource{
"name":"whost56",
"url":"jdbc:mysql://192.168.88.56:3306/",
"user":"plja",
"password":"123456"
} */;
/*+ mycat: createdatasource{
"name":"rhost57",
"url":"jdbc:mysql://192.168.88.57:3306/",
"user":"plja",
"password":"123456"
} */;
/*+ mycat: dropdatasource{"name":"xx"}*/;
/*! mycat: createcluster{
"name":"rwcluster",
"masters":["whost56"],
"replicas":["rhost57"]
} */;
/*! mycat: dropcluster{"name":"xxx"}*/;
/*+ mycat: createdatasource{
"name": "dw0",
"url": "jdbc:mysql://192.168.88.59:3306/",
"user": "plj", "password": "123456"
} */; /*+ mycat: dropdatasource{"name":"xx"}*/;
/*+ mycat: createdatasource{
"name": "dr0",
"url": "jdbc:mysql://192.168.88.60:3306/",
"user": "plj", "password": "123456"
} */;
/*+ mycat: createdatasource{
"name": "dw1",
"url": "jdbc:mysql://192.168.88.61:3306/",
"user": "plj", "password": "123456"
} */;
/*+ mycat: createdatasource{
"name": "dr1",
"url": "jdbc:mysql://192.168.88.62:3306/",
"user": "plj", "password": "123456"
} */;
/*! mycat: createcluster{
"name":"c0",
"masters": ["dw0"],
"replicas": ["dr0"]
} */;
/*! mycat: createcluster{
"name":"c1",
"masters": ["dw1"],
"replicas": ["dr1"]
} */;
/*! mycat: dropcluster {"name": "xx"}*/;
create table tarena.employees(
employee_id int primary key,
name char(10),
email varchar(30)
)
dbpartition by mod_hash(employee_id)
tbpartition by mod_hash(employee_id)
dbpartitions 2
tbpartitions 1;
create table tarena.salary(
employee_id int primary key,
p_date date,
basic int,
bonus int
)
dbpartition by mod_hash(employee_id)
tbpartition by mod_hash(employee_id)
tbpartitions 1;
==========================================================================
非关系型数据库:
分类:
键值对数据库:redis
文档数据库(行数据库):ElasticSearch
列数据库:Hbase
图形图像数据库:Neo4j
时序数据库:Prometheus
矢量数据库:VectorDB
Redis:远程字典服务,键值对类型数据库代表
核心思想:Redis将数据存放于内存,追求数据的极致处理速度
应用场景:
缓存服务器、session共享服务器、购物车
分布式锁、抽奖器、计数器、消息队列
基础指令:
ping/set/get/keys/info
type/ttl/expire/exists/move/select
del/flushdb/flushall
Redis数据类型:
字符类型(string):
set/get/mset/mget/append/strlen/getrange
列表类型(list):
lpush/rpush/lpop/rpop/lindex/lset/linsert/llen/lrange
散列类型(hash):
hset/hget/hmset/hmget/hdel/hlen
hkeys/hvals/hgetall
无序集合(set):
sadd/srem/smembers/sismember/srandmember
spop/scard/sinter/sdiff/sunion
有序集合(sort set):
zadd/zrange/zrank/zrevrank
zscore/zincrby/zrem
Redis数据持久化:
概念:Redis数据备份的方式,不是把Redis的数据存放到硬盘!!!
分类:
rdb(拍照片):定期将内存中的Redis数据快照到硬盘
特性:速度快,文件体积小,适合大规模数据备份恢复,但丢失数据量大
触发方式:
1、手工执行bgsave命令
2、Redis服务正常退出
3、触发配置文件中的save规则
aof(写日记):记录Redis执行过的所有的写操作指令
特性:速度慢,文件体积大,数据备份恢复速度慢,但数据丢失量小
LNMP+RedisCluster(Redis做缓存服务器效果)
通过将MySQL中的数据缓存到Redis实现数据查询加速
热点数据:大量请求同时访问的数据
Redis分布式高可用集群:
Redis数据分布式存储及高可用解决方案
核心概念:哈希槽(hash slots)
哈希:算法:crc16(key)=int
槽:逻辑概念,一段范围值 0~16383 共16384个
crc(key) % 16384 = 0~16383
结论:判断Redis分布式高可用集群是否可用的标准是16384个哈希槽是否被完全覆盖,无断点和交叉
Redis主从同步:多个Redis服务器数据实时同步的解决方案
工作原理:
1、从服务器向主服务器发送sync命令
2、主服务器接收到sync命令后,开辟子进程,触发rdb持久化对已有数据做完整备份
3、主服务器同时开辟内存buffer空间,收集当前执行的所有的写操作的指令
4、完整备份完成后将rdb文件发送给从服务器
5、从服务器热加载rdb文件实现数据恢复
6、接收主服务器发送过来的buffer区域内记录的写操作的指令并进行复现
结构模式:
一主一从
一主多从
级联复制
Redis哨兵服务:
是Redis主从同步的增强架构,可以实现Redis主从同步的读写分离和高可用
特性:
1、哨兵节点作为特殊的Redis节点,可以承接客户端连接,但不存储数据
2、实现Redis主从复制组的监控
3、实现Redis主从的读写分离
4、Redis主从复制组的故障自动切换
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)