- 2023-04-03决战圣地玛丽乔亚Day47----Redis集群
4.Redis Cluster集群模式如果单机吞吐量过大,我们可以横向和纵向进行扩展,横向就是加节点(scaleout),纵向就是加配置(scaleup)。如果加配置,治标不治本,单机局限性和持久化问题无法解决(如轮式RDB快照还是AOF指令)横向扩展更容易扩展,可以解决很多问题,包括单一实例节点的硬件扩容限制
- 2023-04-03决战圣地玛丽乔亚Day46----Redis哨兵模式
哨兵模式Sentinel: 自动感知Master故障并选择一个Slave切换为Master,实现故障的自动转移能力。1.监控:持续监控主从是否健康,是否处于预期的工作状态.2.主从的动态切换:当Master故障后,哨兵启动自动故障恢复:从slave中选一个新的master3.通知机制:竞选出来新的master后,通知客户
- 2023-03-30决战圣地玛丽乔亚Day45
4.Redis Cluster集群模式如果单机吞吐量过大,我们可以横向和纵向进行扩展,横向就是加节点(scaleout),纵向就是加配置(scaleup)。如果加配置,治标不治本,单机局限性和持久化问题无法解决(如轮式RDB快照还是AOF指令)横向扩展更容易扩展,可以解决很多问题,包括单一实例节点的硬件扩容限制
- 2023-03-28决战圣地玛丽乔亚Day43
Springboot的自动装配原理:@SpringBootApplication 进入 AutoConfigurationImportSelector类中,会调用 selectImports(方法),用于选择需要自动配置的类,并返回它们的
- 2023-03-24决战圣地玛丽乔亚Day40---Spring框架01
springSpring启动过程?1.初始化Spring容器,注册内置的BeanPostProcessor的BeanDefinition到容器中如果是注解的方式,会调用AnnotationConfigApplicationContext
- 2023-03-22决战圣地玛丽乔亚Day39 -----GC、内存模型、类加载
内存模型:java内存模型定义了JVM虚拟机如何与计算机的内存进行交互。java内存模型把内存划分为两部分:主内存和工作内存。主内存共享,工作内存线程私有。java内存模型的实现
- 2023-03-15决战圣地玛丽乔亚Day33 ---Synchronized && volatile
再Synchronized和ReetrantLock的区别:1.Synchronized可以对静态方法,普通方法,代码块加锁。自动加锁释放锁。ReetrantLock需要手动的加锁释放锁,加锁前需要创建一个ReetrantLo
- 2023-03-09决战圣地玛丽乔亚Day
今日目标(AQS):AQS(抽象队列同步器):相当于实现锁的一系列模板方法。如果要实现锁,需要:1.锁是否被占用的状态值。2.阻塞/唤醒3.竞争失败的队列AQS中:state:状态信息,不同
- 2023-03-03决战圣地玛丽乔亚Day25-----慢查询优化和索引优化
建索引的几大原则1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a=1andb=2andc>3andd=4如果
- 2023-03-02决战圣地玛丽乔亚Day24
高性能Mysql第四版P190~204 学习记录:联接查询: 对于Union查询,mysql先把一系列单个查询放在临时表,然后再重新读出临时表中的数据完成Union查询。在Mysql的概念中,联接
- 2023-02-23决战圣地玛丽乔亚Day19---
聚簇索引和非聚簇索引:聚簇和非聚簇的含义是:是否索引和数据进行绑定,即是否需要二次查找才能找到对应的数据值。由于聚簇索引的绑定关系,要求聚簇索引是唯一值,否则不能明确通
- 2023-02-23决战圣地玛丽乔亚Day18----关于mysql死锁+ mysql索引的数据结构相关
Mysql为什么会产生死锁? 事务A、B分别拿到1,4的独占行锁,然后再去拿4,1的行锁,都会由于另一个事务不释放锁等待,造成了循环等待的局面。(1)同一时刻只能有一个事务持有这
- 2023-02-21决战圣地玛丽乔亚Day17 ----意向锁/MDL锁
MYSQL的行锁:独占锁、共享锁表锁:除了独占锁共享锁之外,还有意向锁和MDL锁。意向锁:意向锁是一种不与行级锁冲突表级锁。意向锁数据引擎自己维护,自己无法去操作。在为数据
- 2023-02-21决战圣地玛丽乔亚Day16 --- 算法两道+ 独占锁/共享锁学习
算法部分:复习一下二叉树的题目:简单的前中后序遍历:解二叉树的题目的逻辑:1.确定入参和返参2.确定终止条件3.确认每层的逻辑例如简单的后续遍历。 后续遍历是左右中
- 2023-02-19决战圣地玛丽乔亚Day15 CAS和分布式锁
volatile的问题:volatile只能保证读/写操作的原子性,没有办法保证变量的其他操作的原子性,例如++ 等非单独读/写操作。 相对于Synchronized的悲观锁方式,还有一种方式来
- 2023-02-18决战圣地玛丽乔亚Day14 ----Volatile关键字分析
volatile:背景: CPU和主存读写速度不一致,出现了高速缓存。把一些经常读的数据存入高速缓存,交互计算和高速缓存进行,修改完毕后再从高速缓存刷回主存中。但是问题来了!CPU
- 2023-02-17决战圣地玛丽乔亚Day13--Mysql性能调优以及乐观锁/悲观锁
1.参数配置调优。 先pass2.索引调优如果使用联合索引,要遵循最左匹配原则。index(a,b,c) 如果想使用这个索引,那么必须遵循这个顺序使用。模糊查询也是要
- 2023-02-16决战圣地玛丽乔亚Day12--零拷贝02
对于上次提到的mmap+write做一个总结mmap用到的特性是虚拟内存。 操作:1.DMA把磁盘内容copy到内核缓冲区。2.通过虚拟空间映射的方式,用户缓冲区和内核缓冲区共
- 2023-02-15决战圣地玛丽乔亚Day11---零拷贝
首先弄懂传统的I/O操作的过程: 首先,期间共发生了4次用户态与内核态的上下文切换,因为发生了两次系统调用,一次是 read() ,一次是 write(),每次系统调用都得先
- 2023-02-14决战圣地玛丽乔亚Day10--kafka学习
概念上kafka和RocketMQ的结构很类似。除了Broker、Producer、Consumer、Topic。多了一个分区的概念Partition。对于NameServer的概念,kafka用的是zookeeper来保存信息。包
- 2023-02-13决战圣地玛丽乔亚Day09--RocketMQ总结
- 2023-02-10决战圣地玛丽乔亚Day08
RocketMQ分布式事务 相对于本地事务,分布式事务是为了满足跨数据源或跨服务的事务场景。上图展示了RocketMQ在分布式事务中的应用,满足CAP定理中的AP,保证最终一致
- 2023-02-08决战圣地玛丽乔亚Day07----RocketMQ
回顾上次的内容:NameServer、Broker、Producer、Consumer生产者向Broker发送消息,放在消息队列,消费者通过消息推过来/自己拉取的方式消费消息。 NameServer和Broker保持
- 2023-02-03决战圣地玛丽乔亚Day06-- MQ消息队列
MQ消息队列。目前市面上流行的MQ有:RocketMQ、kafka、RabbitMQ、ActiveMQ比较一下这几个消息队列一般消息队列的作用和使用场景是:1.解耦。(本来A要调很多接口,现在A直接把
- 2023-02-01决战圣地玛丽乔亚Day05
Zookeeper、Nacos、Eureka的比较CAP原则;Consistency:数据一致性(主要在乎数据的安全和一致,用户体验放在第二)Availability:可用性(收到请求要进行反馈,用户体验第一)Partiti