自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 Redis 集群

由于数据量过大单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。

2023-09-04 15:56:00 886

原创 Redis 集群环境案例安装步骤

redis-cli -a 密码 --cluster reshard 192.168.111.175:6381。命令:redis-cli -a 密码 --cluster del-node ip:端口 6387节点ID。//注意,注意,注意自己的真实IP地址 //注意,注意,注意自己的真实IP地址。redis-cli -a 密码 --cluster check 真实ip地址:6381。redis-cli -a 密码 --cluster check 真实ip地址:6381。

2023-09-04 15:29:34 743

原创 Redis 哨兵(sentinel)

因为有的时候,某个sentinel节点可能因为自身网络原因,导致无法连接master,而此时master并没有出现故障,所以,这就需要多个sentinel都一致认为该master有问题,才可以进行下一步操作,这就保证了公平性和高可用。表示允许并行同步的slave个数,当Master挂了后,哨兵会选出新的Master,此时,剩余的slave会向新的master发起同步数据。2) 将之前已下线的老master设置为新选出的新master的从节点,当老master重新上线后,它会成为新master的从节点。

2023-09-02 13:30:42 1406 3

原创 Redis 复制(replica)

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。1. Aslave可以是下个slave的master,slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master可以有效减轻主master的写压力。Y,首次一锅端,后续跟随,master写,slave跟。从机不动,原地待命,从机数据可以正常使用;

2023-08-31 15:37:51 660

原创 Redis 管道

Pipeline是为了解决RTT往返回时,仅仅是将命令打包一次性发送对整个Redis的执行不造成其它任何影响。

2023-08-31 14:34:02 454

原创 Redis 事务

开启: 以MULTI开始一个事务入队: 将多个命令入队到事务中,接到这些命令并不会立即执行而是放到等待执行的事务队列里面执行: 由EXEC命令触发事务。

2023-08-29 18:27:38 809

原创 Redis 持久化

官网RDB(Redis 数据库):RDB 持久性以指定的时间间隔执行数据集的时间点快照。1. 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作2. 默认情况下,redis是没有开启AOF(append only file)的开启AOF功能需要设置配置: appendonly yes1. 问题可否共存。

2023-08-29 14:07:58 478

原创 Redis 10 大数据类型

1. which 101. redis字符串2. redis 列表3. redis哈希表4. redis集合5. redis有序集合6. redis地理空间7. redis基数统计8. redis位图9. redis位域10. redis流2. 获取redis常见操作指令官网英文:https://redis.io/commands官网中文:https://www.redis.cn/commands.html3. redis键(key)3

2023-08-27 17:43:59 423 1

原创 Redis7安装

gcc是linux下的一个编译程序,是C程序的编译工具。GCC(GNU Compiler Collection) 是 GNU(GNU's Not Unix) 计划提供的编译器家族,它能够支持 C, C++, Objective-C, Fortran, Java 和 Ada 等等程序设计语言前端,同时能够运行在 x86, x86-64, IA-64, PowerPC, SPARC和Alpha 等等几乎目前所有的硬件平台上。

2023-08-26 14:07:37 1036

原创 Redis7之介绍(一)

英文文档中午文档1. 新特性2. 部分新特性总览新增命令listpack替代ziplist底层性能提升(和编码关系不大)

2023-08-26 10:30:31 604

原创 Docker容器监控之 CAdvisor+InfluxDB+Granfana

1. 原命令通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了。。。。但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能2. 是什么1. 一句话CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表2. CAvisor3. InfluxDB4. Granfana

2023-08-24 15:55:23 167

原创 Docker 轻量级可视化工具Portainer

1. 是什么Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。2. 安装2.1 官网https://www.protainer.io/https://docs.portainer.io/ce-2.9/start/install/server/docker/linux2.2 步骤2.2.1 docker命令安装 docker run -d -p 8000:8000 -p 9000:9000 --n

2023-08-24 15:00:16 554

原创 Docker-compose 容器编排

如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像,构建容器,这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具。docker-compose ps # 展示当前docker-compose编排过的运行的所有容器。docker-compose ps # 展示当前docker-compose编排过的运行的所有容器。

2023-08-24 11:08:06 239

原创 Docker 网络

1. 过时的link2. 案例地址都是对的ping不通?自定制桥接网络,自定义网络默认使用的是桥接brige自定义网络新建容器加入自定义网络此时可以相互ping通。

2023-08-23 17:26:12 796

原创 Docker 微服务实战

VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp。# 将jar包添加到容器中并更名为zzyy_docker.jar。#暴露6001端口作为微服务。# 基础镜像使用java。

2023-08-23 15:09:34 1247

原创 DockerFile解析

从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,* Dockerfile是软件的原材料* Docker镜像是软件的交付品* Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

2023-08-23 11:48:03 735

原创 Docker 安装 Redis集群

为了在节点数目发生改变时尽可能少的迁移数据将所有的存储节点排列在收尾相接的Hash环上,每个key在计算Hash后会顺时针找到临近的存储节点存放。而当有节点加入或退出时仅影响该节点在Hash环上顺时针相邻的后续节点。优点加入和删除节点只影响哈希环中顺时针方向的相邻的节点,对其他节点无影响。缺点数据的分布和节点的位置有关,因为这些节点不是均匀的分布在哈希环上的,所以数据在进行存储时达不到均匀分布的效果。

2023-08-22 17:33:45 477

原创 Docker mysql主从同步安装

change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;默认值为0,表示不自动清理。

2023-08-21 15:22:52 393

原创 Docker 常规软件安装

4. 创建容器实例 docker run -it -p 8080:8080 tomcat ,并设置端口映射。docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据。4. 将redis.conf 文件模板拷贝到 /app/redis目录下。5. /app/redis 目录下修改redis.conf。1. 启动容器指令, 关联容器卷(日志,数据,配置文件),3. 启动 mysql 容器 ,查看官网指令。2. 进入容器卷配置文件,修改字符集。

2023-08-18 17:22:43 292

原创 Docker 容器数据卷

Docker挂载主机目录访问如果出现cannot open directory .: Permission denied解决办法:在挂载目录后多加一个--privileged=true参数即可如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了额,如果要开启,我们一般使用--privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即。

2023-08-18 15:43:30 179

原创 Docker 本地镜像发布到私有仓库

2 Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。1 官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调。2我们自己commit构建的新镜像,新增加了ifconfig功能,可以成功使用。

2023-08-14 15:02:43 606

原创 Docker本地镜像发布到阿里云

本次案例centos+ubuntu两个,当堂讲解一个,家庭作业一个,请大家务必动手,亲自实操。1. 选择控制台进入容器镜像服务。-m :提交时的说明文字;5. 进入管理界面获得脚本。-a :提交的镜像作者;

2023-08-14 14:26:18 1098

原创 Docker 镜像

Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似Java继承于一个Base基础类,自己再按需扩展。新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层。

2023-08-14 13:43:37 305

原创 Docker 常用命令

attach Attach to a running container # 当前 shell 下 attach 连接指定运行镜像build Build an image from a Dockerfile # 通过 Dockerfile 定制镜像commit Create a new image from a container changes # 提交当前容器为新的镜像。

2023-08-13 17:01:22 580

原创 Docker 安装和架构说明

需要正确的理解仓库/镜像/容器这几个概念:Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。镜像文件。

2023-08-11 15:53:57 1310

原创 Docker介绍

应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。通过对应用组件的封装,分发,部署,运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“将应用打包成镜像,通过镜像成为运行在Docker容器上面的实力,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台,跨服务器。* 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

2023-08-11 15:01:42 702

原创 MySQL数据库备份与恢复

数据迁移(data migration)是指选择、准备、提取和转换数据,并将数据从一个计算机存储系统永久地传输到另一个计算机存储系统的过程。此外,验证迁移数据的完整性和退役原来旧的数据存储,也被认为是整个数据迁移过程的一部分。数据库迁移的原因是多样的,包括服务器或存储设备更换、维护或升级,应用程序迁移,网站集成,灾难恢复和数据中心迁移。根据不同的需求可能要采取不同的迁移方案,但总体来讲,MySQL数据迁移方案大致可以分为物理迁移和逻辑迁移两类。通常以尽可能自动化。

2023-08-03 17:22:17 4365

原创 MySQL主从复制

在实际工作中,我们常常将redis作为缓存与MySQL配合使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存架构是高并发架构中非常重要的一环。此外,一般应用对数据库而言都是 “读多写少”,也就是说对数据库读取数据的压力比较大,有一个思路就是采用数据库集群的方案,做主从架构,进行读写分离,这样同样可以提升数据库的并发 处理能力。

2023-08-03 16:05:08 195

原创 MySQL 其他数据库日志

中继日志只在主从服务器架构的从服务器上存在。从服务器为了与主服务器保持一直,要从服务器读取二进制日志的内容,并且把读取到的信息写入本地的日志文件中。这个从服务器本地的日志文件就叫中继日志。然后,从服务器读取中继日志,并根据中继日志的内容对从服务器的数据进行更新,完成主从服务器的数据同步。搭建好主从服务器之后,中继日志默认会保存在从服务器的数据目录下。文件名的格式是:从服务器名-relay-bin.序号。

2023-08-02 15:59:22 273

原创 MySQL多版本并发控制

MVCC(Multiversion Concyrrency Contril),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本来管理实现数据库的并发控制。这项技术使得在innodb的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到他们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用。

2023-08-01 15:18:41 292

原创 mysql 锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感数据(比如订单,金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中枷锁是为了保证数据的一致性,这个思想在数据库领域同样重要。在数据库中,除传统的计算资源(cpu,ram,io等)的争用意外,数据也是一种供许多用户共享的资源。为了保证数据的一致性,需要对并发操作进行控制,因此产生了锁。同时锁机制。

2023-08-01 11:24:26 388

原创 mysql事务日志

事务有4中特性:原子性,一致性,隔离性和持久性。那么事务的四种特性到底是基于什么机制实现的呢?1. 事务的隔离性由实现。2. 而事务的原子性,一致性和持久性由事务的redo日志和undo日志来保证的。~ redo log 称为,提供再写入操作,回复提交事务修改的页操作,用来保证事务的持久性。~ undo log 称为,回滚行记录到某个特定版本,用来保证事务的原子性,一致性。有的DBA或许会认为undo 是 redo的逆过程,其实不然。

2023-07-28 16:43:24 348

原创 事务基础知识

事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库时钟保持一致性,同时我们还能通过事务的机制 恢复到某个时间点,这样可以保证已提交到的数据库的修改不会因为系统的崩溃而丢失。

2023-07-24 17:19:04 55

原创 pycharm 配置 pyqt5图形化界面

安装pyqt5安装后的库列表开始配置图形化界面。

2023-07-03 14:44:44 291

原创 数据库其它调优策略

磁盘的io能力,也就是它的寻道能力,目前的scsi高速旋转的使7200转/分钟,这样的速度,一旦访问的用户量上去了,磁盘的压力就过大,如果是每天的网站pv在150W,这样的一般的配置就无法满足这样的需求了。这样做的原因是,这些表中某些字段的操作频率很高,经常要进行查询或更新操作,而另外一些字段的使用频率却很低(冷数据),冷热数据分离,可以减少表的宽度。因为数据都是存放到数据库中,我们需要从数据库层中取除数据放到内存中进行业务逻辑的操作,当用户量增大的时候,如果频繁的进行数据查询,会消耗数据库的很多资源。

2023-07-03 09:45:00 298

原创 数据库的设计规范

在关系型数据库种,关于数据表设计的基本远着呢,规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种你设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。范式的英文名称时Normal Form,简称NF。他是英国人E.F.Codd在上个世纪70年代提出的关系型数据库模型后总结出来的。范式是关系型数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。有的时候不能简单按照规范要求设计数据表,因为有的数据看似冗余,其实对业务来说十分重要。这个时候,我们就要遵循。

2023-06-29 14:07:52 429

原创 索引优化于查询优化

理解方式一:索引是高校找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此他不必读取整个行。毕竟索引叶子节点存储了他们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了满足查询结果的数据就叫做覆盖索引。理解方式二:非聚簇符合索引的一种形式,它包括在查询里的select,join和where子句用到的所有列(即建索引的字段正好是覆盖查询条件中所设计的字段)。简单说就是,索引列+主键包含select 到 from 之间查询的列。

2023-06-26 17:15:23 164

原创 EXPLAIN 性能分析工具的使用

定位了查询慢的sql之后,我们就可以使用 explain 或 describe 工具做针对性的分析查询语句。describe 语句的使用方法与 explain 语句是一样的,并且分析结果也是一样的。mysql中有专门负责优化select语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户段请求的query提供他认为最优的执行计划(他认为最优的数据检索方式,但不见得DBA认为是最优的,这部分最耗时)。

2023-06-14 16:33:28 94

原创 索引创建与设计的基本原则

上创建一个索引,该索引指向创建时对应的多个字段,可以通过这几个字段进行查询,但是只有查询条件中使用了这些字段中的第一个字段时才会被使用。使用 CREATE TABEL 创建表时,除了可以定义列的数据类型外,还可以定义主键约束,外键约束或者唯一性约束,而不论创建那种约束,在定义约束的同时相当于在指定列上创建了一个索引。单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引。建立索引以后,可以通过索引进行查询。可以设置唯一性索引,在创建唯一性索引是,限制该索引的值必须是唯一的,但允许有空值。

2023-06-07 10:44:27 111

原创 InnoDB数据存储结构

这个问题的症结在于到现在为止我们介绍的区都是非常 纯粹的,也就是一个区被整个分配给某一个段,或者说区中的所有页面都是为了存储同一个段的数据而存在的,即使段的数据填不满区中所有的页面,那余下的页面也不能挪作他用。在一个碎片区中,并不是所有的页都是为了存储同一个段的数据而存在的,而是碎片区中的页可以用于不同的目的,比如有些页用于段B,有些页甚至那个段都属于。如果通过B+树的索引查询行记录,首先是从B+树的根开始,逐层检索,直到找到叶子节点,也就是找到对应的数据页为止,将数据也加载到内存中,页目录中的槽采用。

2023-06-02 18:11:03 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除