自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多版本并发控制

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

2022-06-04 00:30:14 346

原创 Spring的三级缓存解决循环依赖

一、什么是Spring三级缓存第一级缓存:也叫单例池,存放已经经历了完整生命周期的Bean对象。第二级缓存:存放早期暴露出来的Bean对象,实例化以后,就把对象放到这个Map中。(Bean可能只经过实例化,属性还未填充)。第三级缓存:存放早期暴露的Bean的工厂。注:只有单例的bean会通过三级缓存提前暴露来解决循环依赖的问题,而非单例的bean,每次从容器中获取都是一个新的对象,都会重新创建,所以非单例的bean是没有缓存的,不会将其放到三级缓存中。为了解决第二级缓存中AOP生

2022-05-26 21:06:56 8210 3

原创 浅谈 DML、DDL、DCL的区别

一、DMLDML(data manipulation language)数据操纵语言:    就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。SELECT 列名称 FROM 表名称UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)DELETE FROM 表名称 WHERE 列名称 =..

2022-03-28 15:44:02 265

转载 动态扩容Linux根目录 (解决/dev/mapper/cl_192-root 占用了过高问题)

相信大家在运维centos服务器的时候经常会遇到根目录空间不足的现象,今天本人就针对此问题给出一个调整root分区大小的方案,操作如下:1. 首先,必须确保其他分区有足够的空间用来分给根目录/。可以使用以下命令查看:$ sudo df -h可以看到,这里home目录空闲的空间还很大,因此,我们可以将home的空间分给root目录一些。2. 扩容根目录的思路如下:首先将/home文件夹进行备份,然后删除/home文件系统所在的逻辑卷,增大/文件系统所在的逻辑卷,增大/文件系统大小,最

2022-03-25 15:00:24 515

原创 【MySQL】字符串截取之substring_index

substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数例子:str=www.wikidm.cn substring_index(str,'.',1) 结果是:www substring_index(str,'.',2) 结果是:www.wikidm 也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边...

2022-03-25 13:37:10 825

转载 DOCKER安装MYSQL(挂载到本地、修改字符集配置)

标签:Linuxdockermysqllinuxcentos拉取mysql5.7,这里不写:5.7默认拉取最新版本的docker pull mysql:5.7查看下载镜像docker images启动docker run -p 3306:3306 --name mysql-master \-v /mydata/mysql/master/log:/var/log/mysql \-v /mydata/mysql/master/data:/var/li...

2022-03-23 23:16:01 351

原创 logback简单使用及配置文件说明

logback简介​ Logback是由log4j创始人设计的另一个开源日志组件,官方网站:http://logback.qos.ch。 logback的结构:主要由三个模块组成: logback-core // 基础模块,其他模块基于此 logback-classic // 它是log4j的一个改良版本,同时它完整实现了slf4j API,可以更换成其它日志系统,如log4j logback-access // 访问模块与Servlet容器集成提供...

2022-03-23 14:09:02 707

原创 SpringBoot + AOP + 自定义注解 + mysql 实现日志管理

前言自定义注解相关知识可参考阅读:https://blog.csdn.net/u013045971/article/details/53433874AOP相关知识可参考阅读:https://blog.csdn.net/qq_36095679/article/details/919794001.导入aop依赖<dependency> <groupId>org.springframework.boot</groupId>

2022-03-23 10:36:14 330

原创 nginx热部署的原理:nginx -s reload

我们执行这条命令的原因是希望 nginx 不停止服务始终在处理新的请求的同时把 nginx 的配置文件平滑的把旧的 nginx.conf 配置更新为新的 nginx.conf 配置。这样一个功能对于 nginx 非常有必要,但是有时候我们会发现在执行nginx -s reload命令后,worker 子进程的数量会变多了,这是因为老的配置运行的 worker 进程长时间没有退出,当使用 stream 做四层反向代理的时候,可能这种场景会更多。nginx reload流程(1)向 maste..

2022-03-22 22:09:59 10894

转载 SPRING是如何解决循环依赖的?为什么无法解决多例和构造器的循环依赖

标签:javaspring文章目录 1.什么是循环依赖 2.解决循环依赖思路 3.二级缓存能否解决循环依赖,三级缓存存在的意义 4.多例和构造器为什么无法解决循环依赖 5.如何进行扩展 6. spring在创建bean的时候,在哪里创建的动态代理? 1.什么是循环依赖所所谓的循环依赖是指,A 依赖 B,B 又依赖 A,它们之间形成了循环依赖。或者是 A 依赖 B,B 依赖 C,C 又依 赖 A。它们之间的依赖关系如下:循环...

2022-03-21 20:50:53 2985

转载 解决maven本地有jar包但还是要从远端下载的问题

最近编译项目,发现有个模块总是遍不过,报无法download jar包。跑到maven配置的远端仓库,发现maven已不支持该jar包。但是本地确实存在,为什么要从远端再下嘞?不知道最后发现因为下载资源后,会生成一个_remote.repositories文件,删除_remote.repositories 文件之后,就不在从远端下载...

2022-03-18 17:25:32 2888

转载 elasticsearch将数据导出json文件【使用elasticdump】

一、前提准备须要使用npm安装,还未安装的朋友能够阅读另外一篇个人博客《安装使用npm》,windows环境。npm二、安装es-dump打开终端窗口PowerShell或者cmd。json输入命令,等待安装:-g 表示全局安装(可选)。windowsnpm install elasticdump -g三、备份数据须要更详尽的解释,也能够查看官方文档。"\"不表明换行,参数命令直接在后面加空格隔开。app[cpp]view plaincopy#拷贝数据,能够是...

2022-03-09 13:19:59 2093

原创 解决kettle部署在linux中界面变成英文的问题

问题描述:将kettle的包集成到web应用中,部署到Linux系统中,中文标签不正常显示问题原因:Linux系统的语言环境为不是zh_CN.UTF-8,其代表中国使用的Unicode字符集解决办法:echo $LANGvi /etc/sysconfig/i18n添加:LANG="zh_CN.UTF-8"source /etc/sysconfig/i18n...

2021-11-22 14:05:24 1152 1

原创 centos7设置时间和时区

1、安装ntp服务软件包:yum install ntp2、将ntp设置为缺省启动:systemctl enable ntpd3、修改启动参数,增加-g -x参数,允许ntp服务在系统时间误差较大时也能正常工作:vi /etc/sysconfig/ntpdOPTIONS="-g -x"4、启动ntp服务:service ntpd restart5、将系统时区改为上海时间(即CST时区):ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/loc

2021-11-22 10:45:34 1172

转载 linux修改静态ip

1,修改网卡配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens332,修改文件内容TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticIPADDR=192.168.200.129NETMASK=255.255.255.0GATEWAY=192.168.200.2DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUT

2021-11-12 22:44:38 213

原创 linux中关闭防火墙

systemctl status firewalld查看当前防火墙状态systemctl stop firewalld关闭当前防火墙。systemctl disable firewalld开机防火墙不启动。

2021-11-12 22:43:49 1559

原创 Docker搭建私有仓库

一、私有仓库搭建# 1.拉取私有仓库镜像docker pull registry# 2.启动私有仓库docker run -id --name=registry -p 5000:5000 registry# 3.打开浏览器输入 http://私有仓库服务器ip:5000/v2/_catalog# 4.修改daemon.jsonvim /etc/docker/daemon.json# 在上述文件中添加一个key, 保存退出"insecure-registries": ["192.

2021-11-09 19:16:33 531

原创 从mysql挂载的data目录中恢复数据库

办公室突然断电,开机后部署在docker中的mysql应用无法正常启动,但是挂载在本地一个的_data文件夹里的所有所有库数据文件还在,如何用该目录中的文件恢复数据库中的数据?1.删除之前的mysql应用docker stop mysqldoker rm mysql2.重新部署应用将新数据库中的数据挂载到本地的/var/lib/docker/volumes/mysql-data/data文件夹下sudo docker run --name mysql -v /var/lib.

2021-10-20 17:11:45 848

原创 在SpringBoot中利用nacos对数据源进行动态刷新

一、重写DruidAbstractDataSource类这里为什么要重写这个类:因为DruidDataSource数据源在初始化后,就不允许再重新设置数据库的url和userName注意:类所在的包名必须为 com.alibaba.druid.poolpublic void setUrl(String jdbcUrl) {if (StringUtils.equals(this.jdbcUrl, jdbcUrl)) {return;}// 重写的时候,需要将这个判断注释掉,.

2021-10-12 09:51:44 2485 1

原创 解决Linux系统中netWork重启不了

(1) 查看主机地址 ip addr link/other 后既是主机地址修改/etc/sysconfig/network-scripts/ifcfg-ens33 查看HWADDR地址如果没有,添加,如果和ip addr一致,问题解决(2) 关闭NetworkManagersystemctl stop NetworkManagersystemctl disable NetworkManager重新启动网络:systemctl start network.service...

2021-10-08 09:05:08 1598 1

原创 Java实现快速排序

一、快速排序法流程介绍快速排序算法是对冒泡排序的一种改进,通过多次比较和交换来实现排序,其排序流程如下:(1) 首先设定一个分界值,通过该分界值将数组分成左右两部分。(2) 将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。(3) 然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置...

2021-09-17 13:53:26 761

原创 Java中的希尔排序

一、希尔排序法介绍 希尔排序实际上也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。二、希尔排序法基本思想 希尔排序是把一组数据按下表的一定增量分组,对每组使用直接插入排序算法进行排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便种植三、希尔排序法的示意图四、希尔排序法应用实例有一组数据{8,9,1,7,2,3,5,4,6,0},从小到大进行排序...

2021-09-17 10:28:41 104

原创 Java实现插入排序

一、插入排序介绍插入排序属于内部排序法,是对于欲排序的元素以插入的方式找寻元素的适当位置,以达到排序的目的。二、插入排序法思想插入排序的基本思想是:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之称为新的有序表。三、插入排序思路图代码实现public class InsertionSort { p.

2021-09-16 17:06:39 80

原创 Java实现选择排序

一、基本介绍 选择排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。二、选择排序思想原始的数组 : 101, 34, 119, 1第一轮排序 : 1, 34, 119, 101第二轮排序 : 1, 34, 119, 101第三轮排序 : 1, 34, 101, 119 说明:1. 选择排序一共有 数组大小 - 1 轮排序2. 每1轮排序,又是一个循环, 循环的规则(代码)2.1先假定当前这个数是...

2021-09-16 16:18:27 244

原创 Java实现冒泡排序

1.基本介绍冒泡排序的基本思想是:通过对待排序序列从前向后(从下表较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素主键从前移向后部。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排序写好后,再进行)代码实现:public class BubbleSort { public static v.

2021-09-16 16:05:04 79

原创 Java数据结构与算法(三):链表

一、链表的介绍链表是有序的列表,但是它在内存中存储的位置并不一定是连续的:1)链表是以节点的方式来存储,是链式存储2)每个节点包含data域,next 域:指向下一个节点3)如图:发现链表的各个节点不一定是连续存储4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表(带头节点)逻辑结构示意图如下二、单链表应用实例使用带头节点的单向链表实现 -水浒英雄排行榜管理完成对英雄人物的增删改查1)第一种方法在添加英雄时,直接添加到链表的尾部.

2021-09-16 15:02:45 471

原创 Java数据结构与算法(二):稀疏数组和队列

一、稀疏数组sparsearray目录一、稀疏数组sparsearray1.先看一个实际的需求2.基本介绍3.应用实例3.扩展二、队列1.先看一个实际的需求编写的五子棋程序中,有存盘退出和续上盘的功能分析问题:因为该二位数组的很多值是默认值0,因此记录了很多没有意义的数据 --> 稀疏数组。2.基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1)记录数组有几行几列,有..

2021-09-16 14:09:15 98

原创 Java数据结构与算法(一) :线性结构和非线性结构

数据结构包含:线性结构和非线性结构一、线性结构1.线性结构作为最常用的数据结构,其特点时数据元素之间存在一对一的线性关系2.线性结构有两种不同的存储结构,即顺序存储结构(数组)和 链式存储结构(链表),顺序存储的线性表成为顺序表,顺序表中的存储元素是连续的3.链式存储的线性表称为链表,链表的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息4.线性结构常见的有:数组、队列、链表和栈二、非线性结构非线性结构包括:二维数组,多维数组,广义表,树结构,图结构...

2021-09-16 13:21:40 166

空空如也

空空如也

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

TA关注的人

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