自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EasyExcel通用上传监听器(泛型、断言、回调)

【代码】EasyExcel通用上传监听器(泛型、断言、回调)

2023-12-26 10:31:44 828

原创 MySQL体系架构

MySQL由连接池、管理工具、服务、SQL接口、解析器、优化器、缓存、存储引擎、文件系统组成。

2023-12-17 23:00:43 75

原创 Zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务。

2023-12-17 22:29:48 183

原创 Redis集群

Redis Cluster是Redis的分布式解决方案,在3.0版本正式推出,有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡的目的。之前,Redis分布式方案一般有两种:1、客户端分区方案,优点是分区逻辑可控,缺点是需要自己处理数据路由、高可用、故障转移等问题。2、代理方案,优点是简化客户端分布式逻辑和升级维护便利,缺点是加重架构部署复杂度和性能损耗。

2023-12-03 01:11:02 890

原创 Redis高并发高可用

在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis 副本,复制功能是高可用Redis的基础。默认情况下,Redis都是主节点。每个从节点只能有一个主节点,而主节点可以同时具有多个从节点。复制的数据流是单向的,只能由主节点复制到从节点。

2023-11-21 23:50:07 48

原创 Redis持久化

Redis虽然是个内存数据库,但是Redis支持RDB和AOF两种持久化机制,将数据写往磁盘,可以有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。

2023-11-12 00:27:18 45

原创 Redis的Key和Value的数据结构组织

当然如果这个数组一直不变,那么hash冲突会变很多,这个时候检索效率会大打折扣,所以Redis就需要把数组进行扩容(一般是扩大到原来的两倍),但是问题来了,扩容后每个hash桶的数据会分散到不同的位置,这里设计到元素的移动,必定会阻塞IO,所以这个ReHash过程会导致很多请求阻塞。哈希表的最大好处很明显,就是让我们可以用 O(1) 的时间复杂度来快速查找到键值对:我们只需要计算键的哈希值,就可以知道它所对应的哈希桶位置,然后就可以访问相应的 entry 元素。此时,Redis 就无法快速访问数据了。

2023-11-09 22:37:32 64

原创 Redis高级特性和应用(慢查询、Pipeline、事务、Lua)

先有一个桶,桶的容量是固定的。以任意速率向桶流入水滴,如果桶满了则溢出(被丢弃)。桶底下有个洞,按照固定的速率从桶中流出水滴。

2023-11-05 18:32:37 253

原创 Redis的高级数据结构

1970 年布隆提出了一种布隆过滤器的算法,用来判断一个元素是否在一个集合中。这种算法由一个二进制数组和一个 Hash 算法组成。本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。

2023-10-22 18:16:16 57 1

原创 Redis的基本使用

一个分布式Web服务将用户的Session信息(例如用户登录信息)保存在各自服务器中,这样会造成一个问题,出于负载均衡的考虑,分布式服务会将用户的访问均衡到不同服务器上,用户刷新一次访问可能会发现需要重新登录,这个问题是用户无法容忍的。哈希类型的操作命令中,hdel,hmget,hmset的时间复杂度和命令所带的field的个数相关O(k),hkeys,hgetall,hvals和存储的field的总数相关,O(N)。列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景。

2023-10-21 23:27:53 70 1

原创 InnoDB引擎解析

InnoDB的内存结构和磁盘存储结构图总结。

2023-10-11 21:54:52 51

原创 MySQL查询原理

MySQL在一般情况下执行一个查询时最多只会用到单个二级索引,但存在有特殊情况,在这些特殊情况下也可能在一个查询中使用到多个二级索引,MySQL中这种使用到多个索引来完成一次查询的执行方法称之为:索引合并/index merge,具体的索引合并算法有下边三种。

2023-10-02 18:26:28 141 1

原创 MySQL分支及其替代品

MySQL变种有好几个,主要有三个久经考验的主流变种:Percona Server,MariaDB和 Drizzle。它们都有活跃的用户社区和一些商业支持,均由独立的服务供应商支持。同时还有几个优秀的开源关系数据库,值得我们了解一下。

2023-09-26 23:35:49 170 1

原创 Mac m1/m2 部署Nacos2.0.3

这里也是参考其他几个大佬的博客,部署完没找到也就不贴出来了🤣。

2023-09-20 12:49:10 406 1

原创 MySQL8新特性

相关sqlmysql8中,创建用户和授权必须分开执行,之前版本是可以一起执行mysql5.7。

2023-09-16 15:20:40 584 1

原创 JVM——垃圾收集器

垃圾回收算法是内存回收的方法论,垃圾回收器是内存回收的具体实现Serial收集器是最基本、发展历史最悠久的收集器,曾经(JDK1.3之前)是虚拟机新生代收集器的唯一选择。它是单线程收集器,不仅意味着只会使用一个CPU或者一条收集线程去完成垃圾收集工作,更重要的是其在进行垃圾收集的时候需要暂停其他线程。Serial Old收集器是Serial收集器老年代版本,是一款单线程老年代收集器,不同的是采用“标记-整理算法”,运行过程和Serial收集器一样。可以理解为Serial收集器的多线程版本。Parallel

2023-09-11 22:57:46 43

原创 Docker Desktop快速搭建中间件

docker pull mysql:5.7.37 # 备注 --restart=always 代表总是重启,每次启动docker都会自动启动,根据自己需要 docker run -d --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.37 # 查看是否启动 docker ps。# 进入容器 docker exec -it redis /bin/bash。index1为索引名称,副本数置为0。

2023-09-04 00:38:25 97 1

原创 CMS垃圾收集器

当灰色对象要删除指向白色对象的引用关系时,就将这个要删除的引用记录下来,在并发扫描结束之后,再将这些记录过引用关系的灰色对象为根,重新扫描一次,这样就能扫描到白色的对象,将白色对象直接标记为黑色(目的就是让这种对象在本轮GC清理中存活下来,待下轮GC的时候重新扫描,这个对象也可能是浮动垃圾)。漏标会导致被引用的对象被当成垃圾误删除,这是严重的bug,必须解决。白色,表示对象尚未被垃圾收集器访问过,显然在可达性分析刚刚开始的阶段,所有的对象都是白色的,若在分析结束的阶段,仍然是白色的对象,即代表不可达。

2023-09-04 00:12:19 43 1

原创 JVM参数

version 查看Java版本信息-help 显示 Java 命令行工具的使用帮助信息-server 用于在服务器环境下运行 Java 应用程序,以获得更好的性能和吞吐量-cp 用于指定项目中需要加载的类所在的位置。

2023-09-01 00:50:40 251 1

原创 JVM——垃圾收集器算法

所有现代的标记-整理回收器均使用滑动整理算法,它不会改变对象的相对顺序,也就不会影响赋值器的空间局部性。复制式回收器甚至可以通过改变对象布局的方式,将对象与其父节点或者兄弟节点排列的更近,以此提高赋值器空间局部性。

2023-08-29 23:53:52 55 1

原创 Java对象内存模型

java对象在内存中包含三部分:对象头、实例数据、对齐填充。

2023-08-20 17:45:21 263 1

原创 JVM——运行时数据区

JVM的设计遵循了冯·诺依曼计算机体系模型。

2023-08-17 17:04:51 37 1

原创 JVM——类加载

jvm类加载

2023-08-12 00:25:05 38 1

原创 MySQL并发安全——事务与锁

rollbackcommitSAVEPOINT 保存点名称ROLLBACK TO [SAVEPOINT] 保存点名称;删除保存点RELEASE SAVEPOINT 保存点名称;隐式提交当我们使用ALTER USER、CREATE USER、DROP USER、GRANT、RENAME USER、REVOKE、SET PASSWORD等语句时也会隐式的提交前边语句所属于的事务。 一个事务还没提交或者回滚时就又使用START TRANSACTION或者BEGIN语句开启了

2023-08-03 22:42:27 117

原创 MySQL查询优化

3.优化:优化SQL语句,例如重写查询,决定表的读取顺序,以及选择需要的索引等。这一阶段用户是可以查询的,查询服务器优化器是如何进行优化的,便于用户重构查询和修改相关配置,达到最优化。通过使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。1.如果是查询语句(select语句),首先会查询缓存是否已有相应结果,有则返回结果,无则进行下一步(如果不是查询语句,同样调到下一步)range:查找某个索引的部分索引,只检索给定范围的行,属于范围查找。

2023-08-01 21:43:09 30

原创 MySQL索引

InnoDB存储引擎支持以下几种常见的索引:B+树索引、全文索引、哈希索引,其中比较关键的是B+树索引。

2023-07-30 09:26:34 43 1

原创 Mysql基础知识

Mysql基础知识

2023-07-29 19:56:13 72 2

空空如也

空空如也

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

TA关注的人

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