Hutool工具包
示例描述内容
计算机通识内容
收录了一些通识知识(常识)
Redis 数据类型
Redis 数据类型 所有的数据类型有:String、Hash、List、Set、Zset、BitMap、HyperLogLog、GEO、Stream String 介绍 String 就是最基本的 Key-Value 类型数据,key 是唯一标识,Value 可以是字符串也可以是数字(整数、浮点数)。 底层是由 SDS(Simple Dynamic String)进行实现。 常用指令 指令 描述 SET key value 设置指定 key 的值。如果 key 已经存在,则覆盖旧值。 GET key 获取指定 key 的值。如果 key 不存在,返回 nil。 GETRANGE key start end 获取指定 key 中字符串值的子字符串。 SETEX key seconds value 设置 key 的值,并同时设置过期时间(以秒为单位)。 PSETEX key milliseconds value 设置 key 的值,并同时设置过期时间(以毫秒为单位)。 SETNX key value 仅在 key 不存在时设置 key 的值。如果...
MySQL分库分表
...
MySQL主从架构
...
MySQL架构
MySQL架构 MySQL整体架构 MySQL整体架构大体分为两层——Server层和执行引擎层。 Server层负责建立连接,SQL的分析、分析和执行SQL。 执行引擎层负责存储和提取数据。 从一条select语句来看各个结构作用、如何配合工作: 连接器先建立连接。(比如使用mysql -uroot...
MySQL日志
MySQL日志 关键在于掌握undo-log、redo-log和bin-log的概念、作用、结构。 自己写的博客本质还是给自己看的(更是是自己输出的过程),所以从别人博客那里复制粘贴没必要。所以日志相关的内容,我这里写的更多的是理解性的,也比较浅。更深的、系统性的见下面两篇博客: https://xiaolincoding.com/mysql/log/how_update.html https://juejin.cn/post/7157956679932313608 Undo-log Undo-log,回滚日志,是用于保证事务ACID性质中原子性的日志;另外还有个作用,MVCC(多版本控制)通过Read View + Undo log日志来实现(因为回滚日志能形成记录的版本链)。 为什么说undo log保证了原子性呢?而且一条普通的更新语句也不是事务呀?其实autocommit参数默认开启,所以执行一条update语句也是开启事务的。其次就是如何保证原子性的——假设一个事务执行失败,由于undo...
MySQL锁
MySQL锁 S锁与X锁 共享锁,Shared Locks,简称S锁,在事务要读取一条记录时,要先获取到记录的S锁。 独占锁,Exclusive Locks,简称X锁,在事务要修改一条记录时,要先获取到记录的X锁。 S锁与X锁之间的兼容关系如下: 兼容性 S锁 X锁 S锁 兼容 不兼容 X锁 不兼容 不兼容 多粒度锁 全局锁 全局锁说的是数据库级别的,会对整个数据库加锁,不能再修改。(一般也不会去用) 表级锁 表级别S锁和X锁 若对表加了S锁,则整个表只能被读,不能被修改;若对表加了X锁,则不能被读,更不能被其他事务修改。 表级别意向锁 即IS锁和IX锁。当对记录加S锁或X锁前,会对表加上IS锁或IX锁,作用是快速判断表内有无记录加了S锁或X锁。(这样的话,在对表加S锁或X锁时,就不用去遍历表中每一条记录,看有没有行级别的S锁或X锁) 元数据锁(MDL) 元数据锁是用来一个事务中用来保护表的结构的,对表操作时会自动加上,防止当前线程对表进行CRUD时,别的线程修改了表结构。 AUTO-INC锁 或...
MySQL事务
MySQL事务 事务,学名transaction。直译应该叫做“交易”。交易场景如下,A向B去买了一件商品,具体过程如下: A从自己的钱包拿出100元 B的钱包获得了100元 B将商品从自己的摊位拿出 A拿到了商品 交易结束。上述的4个步骤是一整个过程,要么全部成功,要么全部失败,不能再任何一个地方中断。所以有了事务的四大特征: ACID A:原子性(Atomicity),即一个事务内包含的所有事件要么全部执行成功,要么因为一个出错就全部失败。 C:一致性(Consistency),即要保证数据之间的互相约束要始终有效。(有点抽象)典型例子就是转账,原本两人钱总和是1000,那么无论怎么转账,和都是1000。 I:隔离性(Isolation),即事务之间相互隔离,不能相互影响。 D:持久性(Durability),事务提交后,数据就是永久保存的,不应该丢失。 InnoDB引擎通过什么技术来保证事务的ACID呢? 持久性通过redo log日志(重做日志)来保证 原子性通过undo...
Java项目零失败启动指南(IDEA)
Java项目零失败启动指南(IDEA) 本文的目的,在于终结ClassNotFoundException报错; 在于拿到一个项目时,能够避免因为依赖问题而报错无法启动。 以下内容均基于 IntelliJ IDEA 进行讲解 检查SDK 路径:File -> Project structrue -> Project -> SDK 修改如下 检查 Language Level 路径:File -> Project structrue -> Module -> Language Level 建议把每个模块都点一遍检查一下 检查最终运行时配置 路径:Run/Debug Configurations -> Build and run 这里其实还有很多东西可以配置,比如 VM 参数。 还有可能会遇到一个问题,是 windows 平台特有的,会报错提示类似“VM启动参数过长”,请你“缩短长度之类的” 那就在下方勾选上 Shorten command line,并选择 JAR manifest 检查 Maven...










