自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis缓存穿透,雪崩,击穿

redis

2024-04-08 20:44:43 275

原创 mysql性能调优

继续调参,5.7把query_cache_size设成0,(这个参数允许 MySQL 在缓存中存储查询结果,从而避免了对数据库的查询操作,提高了查询性能。但是在某些情况下,查询缓存可能会对 MySQL 的性能产生负面影响,比如数据更新频繁的情况下,因为每次数据更新都会导致相关的查询缓存失效。继续修改参数ssl=0 ,performance_schema=OFF (performance_schema简称ps,这个参数是开启对mysql的性能检测,对于mysql整体性能有一定影响)好多了,还得是缓存!

2024-03-21 16:44:33 299

原创 redis ziplist结构和运用

2.保存的所有元素成员都小于64字节,则会使用ziplist作为存储的数据结构。不满足这两个条件时,就会使用skiplist来存储。:list的默认编码是quicklist,quicklist是由双向链表和ziplist组合成的。即整个结构是一个双向链表,链表具体元素内容是ziplist。:当hash的key值或者value值长度超过64的时候,就会从ziplist变成hashtable。在redis中,list,zset和hash三种数据结构都直接或者间接使用到了ziplist。

2023-12-26 15:16:00 903

原创 k8s中的整体架构 ,pod含义,服务类型,网络通讯等

而flannel.1的另一头连着flanneld进程,所有进入flannel.1的流量都会交给flanneld进程进行处理,而flanneld会把数据包3层(IP层)及以上的包封装到一个udp包中,然后查找系统配置,找到数据包需要发送到的节点的IP,然后发送给对端节点的指定udp端口(5678),这个技术就是vxlan,可以将非同一网段的设备通过公网组成同一网段(内网)。上图中,较大的红框是k8s中的master节点,负责接受请求,调度任务,管理节点等,较小的红框中的是node节点,是负责具体干活的节点;

2023-12-26 09:57:25 1068

原创 redis五种数据结构特点

string是redis中最基础的数据结构,就是KV键值对中V值的类型是字符串。采用SDS数据结构进行存储,相比c字符串效率更高,更安全当字符串是long类型整数时,直接采用int格式存储;当字符串是44字节的字符串,采用raw格式存储;list在redis中代表一种可以双向插入,删除的链表。

2023-12-15 15:43:22 984

原创 vue+minio实现文件上传操作

vue,minio, upload

2023-09-22 11:04:08 1645

原创 mysql8.0.30一些新增特性和xtrabackup的对应

事务日志对于mysql是必要的,它可以保证mysql故障恢复和write-ahead-log特性,尤其是mysql8.0只支持InnoDB存储引擎。应客户需求在给mysql实例进行升级之后,(从8.0.2X升级到8.0.3X),发现不能备份成功,查看日志发现是xtrabackup备份时找不到事务日志ib_logfile0。在这里说一下,xtrabackup是跟着mysql的版本号走得,所以每次修改mysql版本的时候,都需要更新对应的xtrabackup版本,避免一些意料之外的问题。

2023-06-16 09:51:45 607

原创 如何保证mysql和redis数据一致性的问题,即缓存更新策略

mysql,redis

2023-05-23 20:30:54 765

原创 docker harbor goharbor/nginx-photon组件一直重启,harbor ip+port不通解决方法

docker重启之后发现goharbor/nginx-photon组件一直处于重启的状态,harbor使用的81端口也没有了,网页访问不了harbor。整体流程就是手动删除harbor_harbor网卡,重启harbor即可。经过排查发现可能是harbor网卡的问题,需要手动移除,

2023-03-15 09:52:10 2084 1

原创 k8s运行自己的服务流程,以及yaml文件中的port,targetport,nodeport含义和用法

k8s port nodeport containerPort

2023-03-10 10:04:32 1660 3

原创 k8s1.24.0 dashboard登录token的生成

dashboard

2023-03-07 16:20:41 1732

原创 使用kubeadm部署k8s1.24.0版本,遇到的坑总结

k8s

2023-02-16 11:01:21 1005

原创 使用orchestrator搭建mysql8.0三节点集群的参数配置,记网络连接失效导致的一次故障

mysql

2022-12-08 16:32:16 1047

转载 pg能够提高可靠性的参数,pg_checksums

pg_checksums

2022-11-14 10:52:05 524

原创 pg wal日志名称格式及其含义

postgresql,wal

2022-11-08 14:01:11 926

原创 pg故障修复记录

postgresql,repmgr,pgbackrest

2022-11-07 11:33:08 511

原创 mysql日志文件

mysql日志文件错误日志慢查询日志查询日志二进制日志错误日志错误日志对mysql的启动,运行和关闭过程进行了记录。当mysql遇到问题的时候,应该首先查看mysql错误日志;可以通过show variables like 'log_error';来定位错误日志文件;慢查询日志慢查询日志可以帮助mysql使用人员定位可能存在问题的sql语句,从而进行sql语句层面的优化;可以通过show variables like 'long_query_time';来设置阈值;查询日志查询日志

2021-10-08 17:55:14 284

原创 InnoDB的关键特性

InnoDB的关键特性插入缓冲插入缓冲Insert Buffer 可能是InnoDB存储引擎中最让人激动和兴奋的一个功能了。这个名字可能让人误以为插入缓冲是缓冲池中的一部分,其实不然,InnoDB缓冲池中又Insert Buffer信息固然没错,但是Insert Buffer和数据页一样,也是物理页的一个组成部分。通常在一张表中,不仅存在着聚集索引,也存在不唯一的辅助索引。在进行插入操作的时候,数据页的存放还是按照主键进行顺序存放的,但是对于非聚集索引(辅助索引),叶子节点的插入不再是顺序的了,这时就

2021-09-28 14:53:21 318

原创 k8s包含的一些模块

k8s包含的一些模块DeploymentHorizontal Pod AutoscalerStatefulSetService概述Kubernetes的服务发现机制外部系统访问Service的问题JobVolumeconfigmap小结DeploymentHorizontal Pod Autoscaler在Kubernetes 1.2中HPA被升级为稳定版本( apiVersion: autoscaling/v1),但仍然保留了旧版本( apiVersion: extensions/v1beta1)。

2021-03-23 14:55:13 763 1

原创 一种写异步golang函数的方法;以及使用context的注意事项

一种写异步golang函数的方法;以及使用context的注意事项一种写异步golang函数的方法使用context的注意事项一种写异步golang函数的方法func AsyncAdd(run func() error) { //TODO: 扔进异步协程池 go run()}func GetInstance(ctx context.Context,id uint64) (string, error) { data,err := GetFromRedis(ctx,id) if err !=

2021-03-22 10:26:26 815

原创 配置kubernetes cluster流程记录

配置kubernetes cluster流程记录准备三台centos机器准备三台centos机器每台机器需要配置/etc/hosts ip+name,三台机器的都写进里面下载docker:$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ do

2021-01-18 09:55:39 280

原创 设计模式之单例模式浅谈,懒汉式和饿汉式及其优化和原理

设计模式之单例模式浅谈饿汉式懒汉式单例模式非常常见,某个对象全局只需要一个实例时,就可以使用单例模式。它的优点也显而易见:它能够避免对象重复创建,节约空间并提升效率避免由于操作不同实例导致的逻辑错误单例模式有两种:饿汉式和懒汉式饿汉式变量在声明时便初始化:public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){} public s

2020-12-01 10:58:30 396

原创 浏览器的工作原理:URL从键入到页面显示的过程究竟发生了什么

浏览器的工作原理:URL从键入到页面显示的过程究竟发生了什么大体流程URL的格式和解析DNS解析详解应用层客户端发送HTTP请求传输层TCP传输报文网络层IP协议查询MAC地址数据达到数据链路层服务器接收数据大体流程键盘或触屏输入URL并回车确认URL解析/DNS解析查找域名IP地址网络连接发起HTTP请求HTTP报文传输过程服务器接收数据服务器响应请求/MVC服务器返回数据客户端接收数据浏览器加载/渲染页面打印绘制输出URL的格式和解析URL的完整格式包括:协议://用户名:

2020-11-30 17:06:49 444

原创 什么是WAL模式

什么是WAL模式什么是WAL?WAL工作原理什么是WAL?WAL模式的全称是Write Ahead Logging,它是很多数据库中用于实现原子事务的一种机制,SQLite 3.7.0版本引入了该特性。Android 3.0 以上版本的SQLite 版本都大于3.7.0。在WAL模式下,SQLite中除了db文件,还包含两个文件,.wal文件和.shm文件,前者是日志文件,后者是日志索引文件。WAL工作原理在引入WAL机制之前,SQLite使用rollback journal机制实现原子事务。r

2020-10-21 09:51:07 1997

原创 IO模型中的BIO,NIO和AIO有什么区别

IO模型中的BIO,NIO和AIO有什么区别基本概念BIO简介伪异步 IONIO简介NIO特性/NIO与IO区别NIO核心组件简单介绍基本概念同步和异步关注的是消息通信机制。同步:发送请求之后,被调用者未处理完请求前,调用过程不会返回。在IO方面,就是java会自己处理IO操作。异步:发送请求值周,立即接收到接收请求,但是被调用者的结果不一定返回。此时调用者可以处理其他请求。被调用者通过状态、通知来通知调用者,或者通过回调函数处理这个调用。在IO方面,就是java将IO读写委托给OS处理,需要将数据

2020-10-20 17:37:07 1066

原创 消息队列:中间件对比----Kafka、ActiveMQ、RabbitMQ及RocketMQ

中间件对比----Kafka、ActiveMQ、RabbitMQ及RocketMQ消息队列定义MQ的优势MQ的特点MQ选型对比RabbtMQJafka/Kafka消息队列定义“消息队列”是在消息的传输过程中保存消息的容器。MQ的优势系统解耦:交互系统之间无直接调用的关系,只有消息传输,实现了系统之间的解耦提高系统的响应时间为大数据处理架构提供服务Java消息服务:JMSMQ的特点先进先出:消息队列的顺序在入队的时候就确定了,一般时不需要人工干预的。而且,最重要的时,数据只有一条数据在使

2020-09-24 10:49:29 372

原创 springboot中面向切面编程

springboot中面向切面编程AOP面向切面编程SpringBoot中的切面编程AOP面向切面编程AOP:spring中提出AOP概念,就是通过动态地为项目中某些类在运行过程中创建代理对象,在代理对象中完成附加功能 | 额外功能;保证在处理业务时能够更加专注于自己的业务逻辑开发。概念:1)通知(Advice):除了目标方法以外的操作称之为通知,包括日志通知,性能通知,事务通知等;2)切入点(pointcut):用来告诉项目中哪些类中哪些方法在执行过程中加入通知;3)切面(Aspect):通

2020-09-06 11:25:38 652

原创 vendor:go语言的包管理工具(小记)

vendor是go语言的一种包管理工具;可以从go get -u github.com/kardianos/govendor下载govendor工具到本地。注:govendor使用时,必须保证工程项目放在GOPATH/src目录下。在Go命令行执行govendor init,自动生成vendor文件夹(存放你项目需要的依赖包)和vendor.json文件(有关依赖包的描述文件)。这时你查看vendor.json文件时,可能还没有什么内容。此时你需要将GOPATH文件夹中的包添加到vendor目录下

2020-09-03 16:18:27 349

原创 Java中String类型不可变

Java中String类型不可变是什么为什么String为什么不可变?从原理上分析。怎么做不可变带来的缺点是什么java中String类型不可变,指的是当我们new了一个字符串,给他赋值之后,name当前对象的值就固定了,而且永远不会改变。但是变量的引用是可以改变的。例如String str=“good”; str+=" news";此时str指向"good news",它的值输出也是"good news",但是并不是"good"和"news"的加和,而是另外开辟了地址空间来存放"good news"

2020-09-03 09:46:13 718

原创 java8中为什么放弃了ConcurrentMap的分段锁,采取了什么新的策略

java8中为什么放弃了ConcurrentMap的分段锁,采取了什么新的策略前言弃用原因什么是可重入锁(递归锁)新的方案前言它的原理是引用了内部的 Segment ( ReentrantLock ) 分段锁,和hashmap一样,在jdk1.7中ConcurrentHashMap的底层数据结构是数组加链表。和hashmap不同的是ConcurrentHashMap中存放的数据是一段段的,即由多个Segment(段)组成的。每个Segment中都有着类似于数组加链表的结构。保证在操作不同段 map

2020-09-02 11:37:08 446

原创 Java学习笔记:反射class.forName和ClassLoader的区别记录

反射

2020-08-31 17:13:49 141

原创 比较全乎的ArrayList和LinkedList的区别

ArrayList和LinkedList的区别Array和List的区别ArrayListLinkedList对比ArrayList的源码分析ArrayList的主要成员变量ArrayList的构造函数扩容机制LinkedList的源码分析Array和List的区别Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据, (因为删除数据以后, 需要把后面所有的数

2020-08-31 16:22:27 120

原创 使用powershell连接mssql的相关操作记录

使用powershell连接mssql的相关操作记录input paramslogFile连接与执行多线程执行input params假设我们需要执行的脚本是a.ps1,我们可以进入到对应目录下,在powershell中执行.\a.ps1的命令,其中定义参数代码示例如下:param( [Parameter(Mandatory=$true)] $localHostName, $Account="root",$password="123456789")写在开头,其中Mand

2020-08-25 15:36:34 424

原创 springboot中本地测试相关,开启jsp页面热部署

springboot中本地测试相关本地测试开启jsp页面热部署本地测试springboot中使用junit测试,必须引入相关的依赖<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test --> <dependency> <groupId>org.springframework.boot</groupId>

2020-08-24 22:54:14 154

转载 java中的关键字transient详解

这个关键字的作用其实我在写java的序列化机制中曾经写过,不过那时候只是简单地认识,只要其简单的用法,没有深入的去分析。这篇文章就是去深入分析一下transient关键字。先给出这篇文章的大致脉络首先,介绍了transient的基本概念和基本用法、然后,介绍深入分析一下transient关键字,并介绍几个需要掌握的问题最后,来个总结一、初识transient关键字其实这个关键字的作用很好理解,就是简单的一句话:将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会被序列

2020-08-24 10:38:35 713

转载 String类型可以被继承吗,为什么

不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。关于final修饰符,介绍如下:根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。  final类不能被继承,没有子类,final类中的方法默认是final的。  final方法不能被子类的方法覆盖,但可以被继承。  final成员变量表示常量,只能被赋值一次,赋值后值不再改

2020-08-24 09:36:09 2360

转载 LRU算法及Java实现

LRU算法及Java实现方法一,使用hashmap方法二,使用linkedhashmap方法一,使用hashmap在O(1)时间内操作对应的key|value,应该考虑到使用hashmap;每当缓存命中(即缓存数据被访问),则将数据移到链表头部;当链表满的时候,将链表尾部的数据丢弃。//用HashMap和一个双向链表来实现LRU缓存class LRUCache { // 双向链表节点定义 class Node { int key; int

2020-08-21 11:39:02 388

原创 采用自动种子的方式搭建sqlserver alwaysOn,和备份恢复模块

采用自动种子的方式搭建sqlserver alwaysOn为什么要使用自动种子配置思路配置流程服务器操作1- 配置主机域名映射:2- 创建群集3- 添加共享文件以下是关于 SQL Server 的相关操作1- 在sqlserver服务中勾选可用性组选项,并重启服务。2-使用sa登录sqlserver,密码在guest_Info.conf中获取3- start to buildAlwaysOn 测试为什么要使用自动种子SQL Server 2016 推出了可用性组的自动种子设定。 自动种子设定使用日志流传

2020-08-17 13:39:39 1599

原创 springmvc中的文件下载

springmvc中的文件下载定义开发文件下载文件下载代码示例控制文件在线打开或附件下载定义用户将服务器中的文件下载到本机的过程开发文件下载定位哪些文件需要下载将需要下载的文件放入指定的目录中开发一个页面提供一个文件下载的链接开发下载Controller文件下载代码示例需要下载的文件在web下的download下的aa.txt;开发的页面:<body> <h2>文件下载</h2> <a href="${pageContext

2020-08-06 16:50:22 258

原创 使用samba实现linux和windows文件共享

使用samba实现linux和windows文件共享Samba概述Samba应用环境使用修改配置文件Samba概述Samba适用于在windows和linux之间进行文件共享,互相通信,我们可以将其搭建成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印。【nfs只能用于linux和linux之间的文件共享】Samba应用环境文件和打印机共享:是Samba的主要功能,SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问。身份验证和权限设置:smbd服

2020-08-06 16:22:10 749

空空如也

空空如也

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

TA关注的人

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