Loading

摘要: CAP理论 CAP理论 CAP理论是分布式系统设计的指导思想 在理论计算机科学中,CAP 定理(CAP theorem)指出对于一个分布式系统来说,当设计读写操作时,只能能同时满足以下三点中的两个: 一致性(Consistence) : 所有节点访问同一份最新的数据副本 可用性(Availability): 非 阅读全文
posted @ 2023-09-22 13:19 花园SON 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 反转链表 /** * 翻转链表非递归 */ public ListNode q1(ListNode head){ ListNode left =null; ListNode right =head; ListNode right2=head; while(right!=null){ right2 = righ 阅读全文
posted @ 2023-09-22 11:10 花园SON 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Redis集群 Redis集群 主从 单节点的Redis的并发能力是有限的,如果需要提供更高的并发能力,可以通过搭建Redis的主从集群,实现读写分离,从而提高Redis的并发能力。 主从复制 Redis节点和节点之间(可主从也可从此从,单向)的数据同步是通过RGB文件进行的 注意:在主从复制场景下,为了主从节点的 阅读全文
posted @ 2023-09-21 13:27 花园SON 阅读(16) 评论(0) 推荐(0) 编辑
摘要: Redis持久化 Redis持久化 Redis 支持持久化,而且支持 3 种持久化方式: 快照(snapshotting,RDB) 只追加文件(append-only file, AOF) RDB 和 AOF 的混合持久化(Redis 4.0 新增) RDB Redis 可以通过创建快照来获得存储在内存里面的数据在 阅读全文
posted @ 2023-09-10 10:36 花园SON 阅读(16) 评论(0) 推荐(0) 编辑
摘要: SpringBoot自动装配原理 SpringBoot自动装配原理 自动装配: 在SpringBoot中,我们只需要进行少量的配置,SpringBoot就可以将组件导入容器。 @SpringBootApplication是一个复合注解包括 @SpringBootConfiguration 底层注解就是@Configuration代表 阅读全文
posted @ 2023-09-09 11:46 花园SON 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Mysql脏页刷盘 什么是脏页,为什么刷盘,与redo有什么关系 当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。 刷盘的目的在于将内存上的数据进行持久化,因为内存上的数据是不安全的,当出现系统宕机的时候,就会造成数据的丢失 阅读全文
posted @ 2023-09-03 12:52 花园SON 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 线程池 线程池 线程池就是一个管理一组线程的池子,当有任务要执行的时候就会从中获取线程来执行,执行完之后线程并不会销毁,而是等待下一个任务。使用线程池可以避免创建线程产生的资源的开销,提高响应速度,更好的管理线程,避免大量线程的创建。 常见的线程池 newFixedThreadPool (固定数目线程的线程 阅读全文
posted @ 2023-09-02 15:01 花园SON 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Mybtais插件开发 Mybtais插件开发 mybatis拦截器可以对下面4种对象进行拦截: 1、Executor:mybatis的内部执行器,作为调度核心负责调用StatementHandler操作数据库,并把结果集通过ResultSetHandler进行自动映射 2、StatementHandler: 封装了JDB 阅读全文
posted @ 2023-09-01 17:40 花园SON 阅读(11) 评论(0) 推荐(0) 编辑
摘要:  Spring 动态数据源切换 Spring 动态数据源切换 Spring boot提供了AbstractRoutingDataSource 根据用户定义的规则选择当前的数据源,这样我们可以在执行查询之前,设置使用的数据源。实现可动态路由的数据源,在每次数据库查询操作前执行。它的抽象方法 determineCurrentLooku 阅读全文
posted @ 2023-09-01 17:40 花园SON 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 线程创建方式 线程创建方式 Java中创建线程主要有三种方式,分别为继承Thread类、实现Runnable接口、实现Callable接口。 继承Thread类 继承Thread类,重写run()方法,调用start()方法启动线程 public class ThreadTest { public static 阅读全文
posted @ 2023-09-01 17:39 花园SON 阅读(2) 评论(0) 推荐(0) 编辑