自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 资源 (2)
  • 收藏
  • 关注

原创 使用docker部署Prometheus和Grafana去监控mysql和redis

服务性能监控。

2024-11-06 10:28:36 1028

原创 并发基础知识

切换到另一个进程时,例如进程1切换到进程2时,是需要先拿到进程2上一次执行到的代码地址,以及任务的运行状态,恢复进程2的任务,使其能在原基础上去继续执行。(寄存器概念了解即可)的用途,这个1核的cpu在运行一段时间的进程1(应用1)之后,停止运行进程1,转而切换到运行进程2(进程2),就这么来回切换运行,就实现了一个单核CPU可以同时去运行多个应用进程。在第1秒钟执行线程1的任务,在2秒钟切换去执行线程2的任务,然后在第三秒钟又切换回执行线程1的任务,这种在由单核交替执行多个线程任务的方式就叫串行。

2024-10-24 23:25:33 664

原创 CentOS系统安装Docker

镜像搜索地址:https://hubgw.docker.com/设置镜像源,推荐使用阿里的。查看docker版本。

2024-10-22 22:42:48 203

原创 索引选择的艺术:MySQL为何青睐B+树?

我们知道MySQL数据库InnoDB引擎索引的数据结构是B+树,那他为什么不用红黑树,不用B树呢?用B+树的优点在哪里?解决了些什么问题?下面将以这几个疑问点为中心记录一下MySQL选用B+树的原因。

2024-10-22 08:50:44 1342

原创 CentOS系统Nginx的安装部署

在服务器上准备好nginx的安装包nginx安装包下载地址为:https://nginx.org/en/download.html解压。

2024-10-21 13:55:05 550

原创 Docker修改镜像的名称和TAG版本

# docker tag [IMAGE ID] [新的REPOSITORY]:[新的TAG]docker tag d3063c1db2bb nacos/nacos-server:v2.3.2

2024-10-21 09:00:00 885

原创 数据库事务的ACID特性

事务的ACID特性是指数据库操作的4个关键特征,原子性、一致性、隔离性和持久性。

2024-10-12 16:10:09 239

原创 轻松搞定Elasticsearch的索引字段类型变更

现有这么一个索引es_test,要将age和sex的字段类型从long改为integer。第二步,将es_test索引的数据复制到es_test_bak索引里。第四步,给es_test_bak索引设置一个es_test的别名。第一步,创建一个新的索引,定义好所需映射。原es_test的映射如下图右侧所示;第三步,删除掉原es_test索引。

2024-10-10 20:48:07 323

原创 手把手教你搭建MySQL主从集群:实现数据高可用

MySQL服务的主从架构是通过binlog日志文件来实现的。使用MySQL做读写分离配置时,就必须基于主从架构来搭建,主节点用来写入数据,从节点用来读取数据。

2024-09-28 23:17:05 1350

原创 【SQL魔法】MySQL自定义排序:用ORDER BY FIELD玩转数据排序

假设我们有一个products('a苹果', '水果'),('c香蕉', '水果'),('e胡萝卜', '蔬菜'),('b榴莲', '水果'),('d茄子', '蔬菜');如果我们希望按照特定的顺序(如先显示水果,再显示蔬菜)来排序,可以使用ORDER BY FIELD(category, '水果', '蔬菜');idnamecategory1a苹果水果2c香蕉水果4b榴莲水果3e胡萝卜蔬菜5d茄子蔬菜。

2024-09-28 22:11:33 1684 2

原创 【锁住精华】MySQL锁机制全攻略:从行锁到表锁,共享锁到排他锁,悲观锁到乐观锁

是最低粒度的的锁,锁住指定行的数据,加锁的开销较大,加锁较慢,可能会出现死锁的情况,锁的竞争度会较低,并发度相对较高。但是如果where条件里的字段没有加索引,则加的行锁会自动升级为表锁,因为行锁是基于索引去进行操作的,所以想要加行锁,就一定要在条件字段为索引的基础上进行操作。

2024-09-27 21:42:02 1096

原创 Linux安装ElasticSearch7详细步骤说明

这个可能是因为之前启动过es,没有正确关闭,导致有遗留进程,把这个进程kill掉之后重启即可(第二个进程是grep本身产生的一条进程,可不予理会);先在es文件夹的plugins文件夹下建一个ik插件的文件夹,然后将ik分词器的插件包放到ik文件夹里进行解压,然后重启es即可。访问路径:http://192.168.0.117:5601/app/kibana。如果不修改该配置,启动es可能会有如下异常。如果不修改该配置,启动es可能会有如下异常。如果不修改该配置,启动es可能会有如下异常。

2024-09-27 00:31:25 1016

原创 MySQL自定义排序:使用ORDER BY FIELD实现灵活的数据排序

假设我们有一个products('a苹果', '水果'),('c香蕉', '水果'),('e胡萝卜', '蔬菜'),('b榴莲', '水果'),('d茄子', '蔬菜');如果我们希望按照特定的顺序(如先显示水果,再显示蔬菜)来排序,可以使用ORDER BY FIELD(category, '水果', '蔬菜');idnamecategory1a苹果水果2c香蕉水果4b榴莲水果3e胡萝卜蔬菜5d茄子蔬菜。

2024-09-25 21:19:44 1041

原创 MySQL普通索引与唯一索引的区别

本文详细介绍了MySQL中的唯一索引和普通索引的区别,并通过示例展示了如何创建和使用这些索引。理解这两种索引的特点和适用场景,可以帮助开发者更好地设计和优化数据库表结构,提高查询性能并确保数据的完整性。

2024-09-25 14:08:12 535

原创 【分布式系统必读】CAP理论:一致性、可用性与分区容忍性的权衡

分布式系统一定是要保证分区容错性的,然后就是在一致性和可用性之间进行一个取舍。为了保证数据的一致性,就势必会因为加锁、网络波动等原因,去阻塞用户的请求,这就必然达不到可用性的要求。而为了保证可用性,而使分布式系统的各个服务节点之间用异步操作去同步数据,就定然会在导致数据还没同步完成时,用户请求到旧数据的问题,就无法达到一致性的要求。所以一个分布式系统只能达到CAP理论其中的两个特性,要么是保证系统的一致性和分区容错性(CP),要么保证系统的可用性和分区容错性(AP)。

2024-09-24 12:30:17 1746

原创 Java基础面试必知:HashMap的数据结构与扩容机制

我们了解到 HashMap 的数据结构是由数组、链表和红黑树组成的,它通过哈希算法来确定键值对的存储位置,并通过扩容机制来应对数据量的增长。

2024-09-20 17:47:00 553

原创 Java基础面试必知==和equals()的区别

对于基本数据类型(如int、char、string等),==比较的是它们的值是否相等。而对于引用数据类型(如String、Object等),==比较的是它们的引用地址是否相同。equals()方法则是用来比较两个对象的内容是否相等,默认实现仅比较对象的引用地址,大多数情况下,我们需要重写equals()方法以实现内容的比较。

2024-09-19 13:43:24 427

原创 MVCC机制解析:提升数据库并发性能的关键

本文深入解析了多版本并发控制(MVCC,Multi-Version Concurrency Control)机制,探讨了其在提升数据库并发性能方面的重要作用。首先,文章介绍了MVCC的基本概念,包括它是如何通过保留数据的多个版本来支持并发读取而不需加锁的。并通过具体例子展示了MVCC如何有效防止常见的并发问题,如脏读、不可重复读和幻读。

2024-09-17 10:22:51 1212

原创 高效使用Git的必备技能:常用命令速查手册

git最常用的添加、拉取、提交、推送、撤销、暂存、切换分支、标签等操作命令手册。

2024-09-15 23:21:21 270

原创 数据库事务中的四大问题:脏读、脏写、不可重复读与幻读详解

当出现并发请求时,我们的数据库可能会出现多个事务同一时间,对同一条数据进行更新查询等操作,这就有可能会出现脏读、脏写、不可重复读、幻读等并发问题的情况。

2024-09-15 23:15:40 1263

原创 MySQL锁机制揭秘:从行锁到表锁,共享锁到排他锁,悲观锁到乐观锁的全面解读

是最低粒度的的锁,锁住指定行的数据,加锁的开销较大,加锁较慢,可能会出现死锁的情况,锁的竞争度会较低,并发度相对较高。但是如果where条件里的字段没有加索引,则加的行锁会自动升级为表锁,因为行锁是基于索引去进行操作的,所以想要加行锁,就一定要在条件字段为索引的基础上进行操作。

2024-09-12 15:44:24 1515

原创 深度解读MySQL意向锁的工作原理机制与应用场景

意向锁意向锁的概念意向锁是InnoDB自动添加的一种锁,不需要用户去干预。是数据库中的一种表级锁,一个事务要给一个资源加锁时,必须要先获取到对应类型的意向锁之后,才可以给这个资源加上自己想要的共享锁或者排他锁(不论是行级还是表级的共享/排他锁,都是需要先获取到意向共享/排他锁)。意向锁并不是真正的锁,而是为了协调事务对表中行的锁定请求而引入的一个概念。意向锁业的两个类型意向共享锁(Intention Shared Lock,IS锁): 表示事务有获取到表的表级或行级共享锁的意向。意向排他锁

2024-09-12 15:42:06 766

原创 Spring常见的面试问答题(一)

首先,Spring是一个生态,但是呢,这个生态里面又有个Spring Framework框架。所以从Spring生态来说,它包含了Spring Framework、Spring MVC、Spring Boot,以及Spring Cloud,和一些其他的框架如Spring Gateway、Spring Security、Spring Data,还有最新出来的Spring AI。

2024-09-09 12:34:30 867

原创 揭秘InnoDB:为何MySQL选择B+树作为索引结构

我们知道MySQL数据库InnoDB引擎索引的数据结构是B+树,那他为什么不用红黑树,不用B树呢?用B+树的优点在哪里?解决了些什么问题?本文将以这几个疑问点为中心详细说明一下MySQL选用B+树的原因。

2024-09-09 10:43:38 1079

原创 mybatisplus集成人大金仓/pgsql提示Cannot convert the column of type TIMESTAMPTZ to requested type timestamp

mybatis里LocalDateTime类型数据是从timestamp转换来的,但在人大金仓/pgsql里面,函数得到的并不是一个单纯的时间戳,而是带时区的时间戳,也就是pgsql里的。将now()的值映射给LocalDateTime类型字段时提示如下异常。Java实体类字段类型为LocalDateTime。无法正常映射到LocalDateTime。

2024-04-08 17:43:38 1361

原创 SpringCloud+Nacos项目集成Seata分布式事务

Seata分布式事务的详细按照部署步骤,以及SpringCloud微服务项目集成Seata分布式事务步骤,附带可直接使用代码和相关脚本。

2023-12-05 13:02:27 1551 3

原创 分布式事务Seata-AT模式的事务提交和事务回滚全过程详解

Seata一次事务的生命周期1. TM 请求 TC 开启一个全局事务,TC 端会生成一个 XID 作为本次全局事务的唯一标识,且这个 XID 是会在本次服务的整个调用链路中传递的,后续的分支事务也是根据 XID 关联上该全局事务。2. RM 请求 TC 将本地事务注册为全局事务的分支事务,通过全局事务的 XID 进行关联。3. 各 RM 分支事务告知 TM 自己是否执行成功。4. TM 根据各 RM 分支汇报的情况判断应该提交事务还是回滚事务,然后请求 TC 告诉本次全局事务应该提交还是回滚。

2023-11-30 08:58:53 3242 1

原创 详细步骤记录:持续集成Jenkins自动化部署一个Maven项目

Jenkins的安装、基础插件配置、Maven+Git项目自动化部署图文结合,详细到每一个操作步骤

2023-11-17 23:59:45 3492 2

原创 Linux系统Redis的集群搭建

在3台虚拟机上每台机搭建一个master主节点和一个slave从节点,共3个master节点,3个slave从节点,以6个redis节点搭建一个redis集群;并附带集群水平扩展操作说明、集群选举原理等情况分析

2023-09-04 15:44:53 905

原创 Linux系统Redis的哨兵架构配置

一定要先准备好所有配置文件再去启动,否则如果复制了已启动的sentinel节点的配置文件,会导致哨兵集群搭建失败,因为sentinel启动之后会在当前节点使用的sentinel配置文件里追加写入。项目运行时,可关闭掉redis主节点,测试哨兵集群自动选举主节点操作(redis主节点挂掉后,服务会发起10次重新连接,之后会重新选举出一个新的主节点继续操作redis数据)而当6379节点重新启动之后,哨兵集群会根据sentinel里的集群信息,将6379redis节点作为从节点加入到整个集群;

2023-08-02 23:26:55 1355 2

原创 Linux系统Redis的主从架构配置

此案例在一台虚拟机上启动6379和6380两个reids实例;6379为主节点,6380为从节点;6380实例会从6379复制数据;先用客户端连接6379主节点写入数据,然后看是否有将数据复制到6380,以确定主从架构是否搭建成功。192.168.3.39为当前虚拟机的IP地址,可使用。先复制一份单机版的reids.conf配置。先调整reids-6379.conf。再调整redis-6380.conf。至此Redis的主从架构搭建成功!连接操作6379主节点。连接访问6380从节点。

2023-08-02 23:24:27 801

原创 Linux系统Redis的单机安装步骤

打印出来的信息有一个redis-server *:6379的进程就代表服务启动成功。下载地址:http://download.redis.io/releases/选择一个需要安装部署的版本,本文下载的redis-5.0.14。本文以redis5版本为例,其他版本几乎一样;修改reids.conf配置。操作系统为CentOS7;解压所下载的redis。下载需要的reids。验证服务是否启动成功。客户端连接reids。

2023-07-30 22:43:24 334

原创 MySQL数据库分别在Linux系统和Windows系统的安装步骤

下载地址:https://dev.mysql.com/downloads/mysql/可以选择下载msi或zip,以下为zip模式安装步骤下载了mysql的zip安装包之后解压即可;

2023-07-30 22:42:25 487

原创 git操作修改历史版本指定tag标签的代码,并发布新标签

当项目已经迭代多个版本之后,突然发现旧版本0.0.1出现了紧急bug,需要直接在0.0.1版本的基础上去修复bug,然后发布一个新版本去更新项目;

2023-02-27 23:05:24 2836 2

原创 SpringBoot项目下@Async注解的使用

一个接口需要执行多个任务时,如task1、task2、task3三个任务,先执行完task1需要耗时1秒,再执行task2需要耗时2秒,最后执行task3需要耗时3秒,那么正常情况下这个接口总共需耗时6秒;这个总耗时就有些长了很影响系统体验,此时就可以使用@Async进行一个异步调用,此时主线程就不需要等待task1执行完之后,再去调用task2,task3同理;主线程会同时去调用task1、task2、task3任务,3个任务会同时执行,那么此时该接口的总耗时就是耗时最长的task3任务的3秒;...

2022-07-17 19:07:10 1663 2

原创 RabbitMQ在Linux环境下的安装详细过程

1. erlang和RabbitMQ的版本需求对照对照地址:https://www.rabbitmq.com/which-erlang.html2. 下载erlang和rabbitmq的安装包erlang下载地址:https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.2.7-2.el7.x86_64.rpmrabbitmq下载地址:https://www.rabbitmq.com/download.html3.上传到服务器

2022-05-13 22:45:26 2714

原创 多线程基础入门学习(带示例代码)

多线程基础入门学习概念并发与并行线程与进程创建线程的方法继承Thread类实现Runnable接口Thread与Runnable的区别线程的常用方法设置优先级(setPriority)休眠(sleep)设置让步(yield)合并(join)守护线程(setDaemon(true))线程的生命周期新建状态(New)就绪状态(Runnable)运行状态(Running)阻塞状态(Blocked)死亡状态(Dead)线程通信等待唤醒机制场景案例代码示例死锁概念并发与并行并发:多个事件在同一时间段内发生;

2022-04-23 22:59:20 1525

原创 es的理论理解(elasticsearch-2)

索引 index相当于数据库里的一个表,一个索引就是一个拥有相似特征的文档的集合;一个索引由一个名字来标识(必须全部是小写字母的)。字段 field相当于是数据于是数据表的字段(列)字段类型 type每一个字段都应该有一个对应的类型,例如:Text、Keyword、Long、Byte等文档 document一个文档类似一条记录,文档以JSON格式来表示;ES的分词ES的默认分词设置的是standard,这个在进行中文分词时会单字拆分,不太友好;常用ik分词器,ik分词器..

2022-04-23 22:16:17 2271

原创 Linux安装elasticsearch(elasticsearch-1)

linux系统下elasticsearch的安装与配置Linux安装ElasticSearch1. 先创建elasticsearch用户组,再创建用户名es密码123456的用户2. 将es用户添加到elasticsearch用户组,并创建es文件夹,并赋予es用户对改文件夹的操作权限3. 给es设置sudo权限4. 切换到es用户(es必须用普通用户启动,root启动不了)5. 上传各安装包到服务器6. 解压elasticsearch的安装包7. 修改elasticsearch.yml配置文件8. 修改j

2022-04-23 22:11:08 196

原创 es的基本操作(elasticsearch-3)

创建es_db索引,并将该索引的默认分词方法设置为ik_max_wordPUT /es_db{ "settings": { "index": { "analysis.analyzer.default.type": "ik_max_word" } }}针对索引的基本操作GET /es_dbDELETE /es_db添加文档PUT /es_db/_doc/1{ "name": "张三", "sex": 1, "age": 23,.

2022-04-01 17:07:08 5272

poi-3.17.jar

在Java后台可使用poi创建excel文件,并通过email将excel发送出去,且本地不会生成实体文件...

2020-06-03

jxl_2.6.9.jar

使用WritableWorkbook、WritableSheet、Workbook等类时需引用的jar包

2020-06-03

空空如也

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

TA关注的人

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