自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql的逻辑架构

查询缓存的作用是以sql为key去查询缓存,如果缓存存在则直接返回结果。解析器的作用是对sql语句进行语法分析,和词法分析。连接器的作用是建立连接,管理权限,维持和管理连接。优化器的作用是对sql语句进行优化。优化器的作用是执行sql语句。

2023-12-20 22:43:35 352

原创 Java基础面试题

session的原理就是,当浏览器第一次发送请求时,服务器自动生成一个session和一个session id用来标识这个session,并将其通过响应发送到浏览器,当浏览器第二次发送请求的时候,会将之前的session id放在请求中一并发送到服务器,服务器从请求中提取出session id并和保存的所有session id进行对比,找到这个用户的session,一般session id都是通过cookie保存的。抛出异常以及捕获异常 ,一个方法所能捕捉的异常,一定是Java代码在某处所抛出的异常。

2023-12-20 22:40:52 387

原创 MySQL实战45讲课后问题

但是,重建主键的过程不合理。但是,学过本章内容的小吕又纳闷了,既然主键包含了a、b这两个字段,那意味着单独在字段c上创建一个索引,就已经包含了三个字段了呀,为什么要创建“ca”“cb”这两个索引?现在,我要把所有“字段c和id值相等的行”的c值清零,但是却发现了一个“诡异”的、改不掉的情况。解答:是在分析器阶段,分析器阶段会对要执行的sql进行词法分析和语法分析,mysql会识别出sql语句里面的每个字符串分别是什么,代表什么,所以是在分析器阶段。我的问题是,对于上面这两个重建索引的作法,说出你的理解。

2023-12-20 22:40:17 906

原创 redis相关面试题

而bgsave命令则会创建一个子进程,用于写入RDB文件的操作,避免了对主线程的阻塞,这也是redis RDB的默认配置。Redis Cluster采用的是类一致性哈希算法实现节点选择的,Redis Cluster将自己分成了16384个Slot(槽位),哈希槽类似于数据分区,每个键值对都会根据它的 key,被映射到一个哈希槽中,具体执行过程分为两大步。RDB采用的是内存快照的方式,它记录的是某一时刻的数据,而不是操作,所以采用RDB方法做故障恢复时只需要直接把RDB文件读入内存即可,实现快速恢复。

2023-12-20 22:38:41 905

原创 rabbitmq面试题

MQ(Message Queue)从字面意思上来看,MQ就是一个队列,和java中的队列一样先进先出的,不过MQ的队列中放的是message,它是一种跨进程间的通信机制,用于上下游之间的消息传递。死信,顾名思义就是无法被消费的消息,死信队列就是装这些死了的消息,什么时候会用到死信队列呢?消息 TTL 过期队列达到最大长度(队列满了,无法再添加数据到 mq 中)消息被拒绝(basic.reject 或 basic.nack)并且 requeue=false.

2023-12-20 22:37:34 338

原创 Java中的Filter和Interceptor

由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。6、拦截器可以获取IOC容器中的各个bean,而过滤器不能,在拦截器里注入一个service,可以调用业务逻辑。5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化被调用和一次。

2023-12-19 23:16:46 396

原创 Linux搭建FastDFS环境

linux搭建FastDFS环境

2021-12-20 22:42:45 1980

原创 FastDFS概念梳理

FastDFS简介

2021-12-18 17:21:50 147

原创 分布式文件系统

简单介绍分布式文件系统

2021-12-18 16:49:32 241

原创 Java的内部类

java内部类学习

2021-12-12 22:44:27 200

原创 Java的引用类型

java的引用类型

2021-12-12 19:49:06 71

原创 ElasticSearch学习相关博客

学习elasticsearch过程中使用的一些比较好的博客

2021-12-02 15:33:50 1036

原创 CAS单点登录学习相关博客

CAS单点登录学习相关博客,使用其中博客全面了解CAS实现原理及搭建过程

2021-12-02 15:24:14 102

原创 搭建Redis三主三从集群

1、引子redis的主从复制以及哨兵模式,它们可以提高读的并发,但是单个master容量有限,数据达到一定程度会有瓶颈,这个时候可以通过水平扩展为多master集群。redis-cluster:它可以支撑多个master-slave,支持海量数据,实现高可用与高并发。哨兵模式其实也是一种集群,它能够提高读请求的并发,但是容错方面可能会有一些问题,比如master同步数据给slave的时候(这其实是异步复制),如果这个时候master挂了,那么slave上的数据就没有master新,数据同步需要时间的,

2021-10-29 20:11:16 605

原创 Redis哨兵(Sentinel)模式

主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。一、哨兵模式概述哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。这里的哨兵有两个作用:通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。当哨

2021-10-27 16:32:50 190 2

原创 Redis缓存过期策略与内存淘汰机制

redis的缓存过期策略和内存淘汰机制

2021-10-27 15:07:43 273

原创 搭建Redis主从复制(读写分离)

1、查看主从信息info replication2、从机配置#replicaof <masterip> <masterport>replicaof 192.168.1.191 6379#masterauth <master-password>masterauth imooc#从机只读replica-read-only yes附:多虚拟机克隆选择要克隆的虚拟机右键,选择管理,然后选择克隆(完整克隆)更改mac地址克隆的mac地址修改

2021-10-24 22:50:31 130

原创 Redis的两种持久化机制

一、RDB(Redis DataBase)1. 什么是RDBRDB:RDB是一种将快照存储持久化方式,具体就是将Redis某一时刻的内存数据保存到硬盘的文件中,默认保存的文件名为dump.db,而在Redis服务器启动时,会重新加载dump.rdb文件的数据到内存当中恢复数据。2. 备份与恢复备份:内存备份 --> 磁盘临时文件恢复:临时文件 --> 恢复到内存3. RDB优劣势优势每隔一段时间备份,全量备份灾备简单,可以远程传输子进程备份的时候,主进程不会有任何io操

2021-10-24 16:00:31 147

原创 Redis的5种数据类型

1、stringstring:最简单的字符串类型键值对缓存,也是最基本的。相关使用命令:get/set/del:查询/设置/删除set rekey data:设置已经存在的key,会覆盖setnx rekey data:设置已经存在的key,不会覆盖set key value ex time:设置带过期时间的数据expire key:设置过期时间ttl:查看剩余时间,-1永不过期,-2过期append key:合并字符串strlen key:字符串长度incr key:累加1dec

2021-10-19 10:55:14 468

原创 安装与配置Redis(linux环境)

安装Redis1、下载官网:https://redis.io/download选择下载稳定版本,不稳定版本可以尝鲜,但是不推荐在生产使用。2、上传至linux3、安装 Redis解压redis:tar -zxvf redis-5.0.5.tar.gz安装gcc编译环境,如果已经安装过了,那么就是 nothing to doyum install gcc-c++进入到 redis-5.0.5 目录,进行安装:make && make install4

2021-10-17 16:29:45 245

原创 搭建Keepalived+Lvs+Nginx高可用集群负载均衡

一、配置Master1、keepalived配置global_defs { router_id LVS_151}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 41 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.150

2021-10-13 09:57:54 348

原创 搭建LVS-DR模式

一、配置LVS节点与ipvsadm1、前期准备服务器与ip规划:LVS - 1台- VIP(虚拟IP):192.168.1.150- DIP(转发者IP/内网IP):192.168.1.151Nginx - 2台(RealServer)- RIP(真实IP/内网IP):192.168.1.171- RIP(真实IP/内网IP):192.168.1.172所有计算机节点关闭网络配置管理器,因为有可能会和网络接口冲突:systemctl stop NetworkManag

2021-10-12 10:53:18 201

原创 Keepalived配置Nginx自动重启

在两台Nginx服务器构建好Keepalived高可用之后,可以保证主节点宕机之后,启动备用节点,但是如果主节点没有宕机,但是主节点上的Nginx却停止工作了,那么这时候既不会启动备用节点,主节点上的Nginx又不能工作,这样还是会出现单节点的问题,所以需要在Keepalived中配置Nginx重启脚本,只要服务器没有宕机但是Nginx又不能工作的时候会重启Nginx(如果是其他的服务也是同样的道理)。1、增加Nginx重启检测脚本vim /etc/keepalived/check_nginx_aliv

2021-10-10 14:04:34 351

原创 MySQL实战45讲-第8讲

事务到底是隔离还是不隔离的?在MySQL里,有两个"视图"的概念:一个是view。它是是一个用查询语句定义的虚拟表,在调用的时候执行查询语句并生成结果。创建视图的语法是 create view,而它的查询方法与表一样。另一个是 InnoDB 在实现 MVCC 时用到的一致性读视图,即 consistent read view,用于支持 RC(Read Committed,读提交)和 RR(Repeatable Read,可重复度)隔离级别的实现。它没有物理结构,用来在事务执行期间定义“我能看到什么数

2021-10-10 12:35:57 100

原创 配置Keepalived双主热备

规则:以一个虚拟ip分组归为同一个路由主节点配置:global_defs { router_id keep_171}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.16

2021-09-30 11:50:54 73

原创 Keepalived注册为Linux系统服务

进入keepalived安装目录cd /home/software/keepalived-2.0.18进入安装包目录中的 /keepalived/etc/cd keepalived/etc/执行以下两条 copy 命令cp init.d/keepalived /etc/init.d/cp sysconfig/keepalived /etc/sysconfig/刷新系统进程systemctl daemon-reload使用系统命令操作 keepalivedsys.

2021-09-30 11:09:41 132

原创 配置Keepalived双机主备

一、配置Keepalived - 主1. 通过命令vim keepalived.conf 打开配置文件global_defs { # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一 router_id keep_171}vrrp_instance VI_1 { # 表示状态是MASTER主机还是备用机BACKUP state MASTER # 该实例绑定的网卡 interface ens33 # 保证主备节点一致即可 virtual_router_id 51

2021-09-29 19:44:38 1042

原创 Keepalived安装部署

Keepalived安装部署1、下载地址点我下载2、通过ftp工具上传至linux中3、解压tar -zxvf keepalived-2.0.18.tar.gz4、配置解压后进入到解压出来的目录,看到会有 configure ,那么就可以做配置了(配置安装和nginx一模一样)#设置keepalived的安装路径和配置文件路径#配置文件路径不能改成其他位置,否则报错./configure --prefix=/usr/local/keepalived --sysconf=/etc

2021-09-28 20:21:25 196

原创 Linux中的日志调试

Linux中Tomcat日志调试进入logs目录,找到catalina.out文件使用tail catalina.out命令查看文件最新日志使用tail catalina.out -f命令查看实时日志

2021-09-22 19:47:39 161

原创 MySQL实战45讲-第7讲

行锁功过:怎么减少行锁对性能的影响?MySQL 的全局锁和表级锁是在Server层实现的,而行锁是在引擎层由各个引擎自己实现的,但并不是所有的引擎都支持行锁,比如MyISAM 引擎就不支持行锁。行锁定义:顾名思义,行锁就是针对数据表中行记录的锁。这很好理解,比如事务 A 更新了一行,而这时候事务 B 也要更新同一行,则必须等事务 A 的操作完成后才能进行更新。一、两阶段锁协议1、什么是两阶段锁协议?如下例子,事务 B 的 update 语句执行时会是什么现象呢?这个问题的结论取决于事务 A

2021-09-20 16:01:44 79

原创 MySQL实战45讲-第6讲

1、锁的类型根据加锁的范围,MySQL里面的锁大致分为全局锁、表级锁和行锁三类。

2021-09-20 13:33:52 934

转载 MySQL实战45讲-第5讲

深入浅出索引(下)在开始这篇文章之前,我们先来看一下这个问题:在下面这个表 T 中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行?下面是这个表的初始化语句。mysql> create table T ( ID int primary key, k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '', index k(k)

2021-09-19 13:51:59 98

原创 MySQL实战45讲-第4讲

深入浅出索引(上)一、为什么要有索引?一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。二、索引是什么样的?索引常见的数据模型有三种,它们分别是哈希表、有序数组和搜索树。1 、哈希表哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Value。哈希的

2021-09-18 20:06:54 131

原创 使用Nginx配置HTTPS域名证书

使用Nginx配置HTTPS域名证书1、安装SSL模块要在nginx中配置https,就必须安装ssl模块,也就是:http_ssl_module。进入到nginx的解压目录: /home/software/nginx-1.16.1新增ssl模块(原来的那些模块需要保留)./configure \--prefix=/usr/local/nginx \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \

2021-09-17 20:04:01 672

原创 Nginx的缓存

一、Nginx控制浏览器缓存1、浏览器缓存加速用户访问,提升单个用户(浏览器访问者)体验,缓存在本地2、Nginx缓存缓存在nginx端,提升所有访问到nginx这一端的用户提升访问上游(upstream)服务器的速度用户访问仍然会产生请求流量...

2021-09-15 10:00:47 972

原创 Nginx的几种负载均衡算法

1、轮询(默认)特点:每个请求按时间顺序逐一分配到不同的后端服务器处理。适用业务场景:后端服务器硬件性能配置完全一致,业务无特殊要求时适用。upstream tomcats { server 192.168.1.173:8080; server 192.168.1.175:8080;}2、加权轮询特点:指定轮询几率,weight值(权重)和访问比例成正比,用户请求按权重比例分配。适用业务场景:后端服务器硬件性能处理能力不平均的情形。upstream tomcats { server

2021-09-14 19:43:29 763

原创 upstream相关指令参数介绍

upstream指令参数1、max_conns作用:限制每台server的连接数,用于保护避免过载,可起到限流作用。测试参考配置如下:# worker进程设置1个,便于测试观察成功的连接数worker_processes 1;upstream tomcats { server 192.168.1.173:8080 max_conns=2; server 192.168.1.174:8080 max_conns=2; server 192.168.1.175:8080 max_conns=2

2021-09-12 12:16:45 396

原创 Nginx跨域配置和防盗链配置支持

Nginx 跨域配置支持指令如下:#允许跨域请求的域,*代表所有add_header 'Access-Control-Allow-Origin' *;#允许带上cookie请求add_header 'Access-Control-Allow-Credentials' 'true';#允许请求的方法,比如 GET/POST/PUT/DELETEadd_header 'Access-Control-Allow-Methods' *;#允许请求的headeradd_header 'Access-

2021-09-12 10:19:23 70

原创 Nginx的location的匹配规则

location五大匹配规则1. 空格:默认匹配,普通匹配location / { root /home;}2. =:精准匹配location = /imooc/img/face1.png { root /home;}3. ~*:匹配正则表达式,不区分大小写#符合图片的显示location ~* \.(GIF|jpg|png|jpeg) { root /home;}4. ~:匹配正则表达式,区分大小写location ~ \.(GIF|jpg|png|jpeg) { r

2021-09-09 20:07:09 264

原创 Nginx日志切割

一、手动切割现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把文件切割为多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百G或者几个T的日志的话,则可以按需以 每半天或者每小时对日志切割。具体步骤如下:1、创建一个shell可执行文件:cut_my_log.sh,内容为:#!/bin/bashLOG_PATH="/var/log/nginx/"RECORD_TIME=$(date -

2021-09-06 20:04:59 279

空空如也

空空如也

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

TA关注的人

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