- 博客(7)
- 收藏
- 关注
原创 MySQL 锁
执行后,整个数据库就处于只读状态了,这时执行对数据的增删改操作或对表结构的更改操作都会被阻塞。当会话断开时,全局锁也会被自动释放。全局锁主要应用于做全库逻辑备份,这样在备份数据库期间,不会因为数据或表结构的更新,而出现备份文件的数据与预期的不一样。加上全局锁,意味着整个数据库都是只读状态。那么如果数据库里有很多数据,备份就会花费很多的时间,并且会造成业务停滞。
2025-04-15 15:10:47
618
原创 JUC ThreadLocal
是 Java 中用于解决线程安全问题的一种隔离机制,它允许每个线程都有自己独立的变量副本,从而避免了线程间的资源共享和同步问题。每个线程内部都有一个是的静态内部类,用来存储以为 key、Object为 value 的键值对。本身只是一个工具类,通过获取当前线程,然后操作线程的读写数据。因为每个线程的是独立的,所以实现了线程间的数据隔离。
2025-04-13 14:34:03
467
原创 JUC 线程池
线程池就是管理一系列线程的资源池。当有任务要处理时,可以把任务提交给线程池进行处理,处理完之后线程并不会立即被销毁,而是等待下一个任务。线程池中维护了一些基本统计信息,例如已完成任务的数量。
2025-04-12 13:20:04
881
原创 Redis 持久化机制
Redis 可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器,还可以将快照留在原地以便重启服务器的时候使用。savebgsave可以在redis.confsave 900 1表示在 900 秒内,如果至少有 1 个键被修改,则触发一次 RDB 快照保存。Redis 的快照是全量快照,也就是说每次执行快照,都是把内存中的所有数据都记录到磁盘中。
2025-04-11 12:14:52
825
原创 MySQL 日志
是 Innodb 存储引擎设计的缓冲池,用来提高数据库的读写性能。MySQL 启动的时候,InnoDB 会为缓冲池申请一片连续的内存空间,然后按照默认16KB的大小划分出一个个的页, 缓冲池中的页就叫做缓存页。此时这些缓存页都是空闲的,随着程序的运行,才会有磁盘上的页被缓存到缓冲池中。所以,MySQL 刚启动的时候,使用的虚拟内存空间很大,而使用到的物理内存空间却很小。这是因为只有这些虚拟内存被访问后,操作系统才会触发缺页中断,申请物理内存,接着将虚拟地址和物理地址建立映射关系。
2025-04-10 13:28:01
1098
原创 函数式编程
我们在编写代码的时候出现最多的就是空指针异常。所以在很多情况下我们需要做各种非空的判断。if (author!= nu11) { 对象中的属性还是一个对象的情况下,这种判断会更多,而过多的判断语句会让我们的代码显得臃肿不堪。所以在 JDK 8 中引入了Optional,养成使用Optional的习惯后可以写出更优雅的代码来避免空指针异常。 只有一个抽象方法的接口我们称之为函数接口。 JDK 的函数式接口都加上了。
2025-04-09 21:45:18
1028
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅