- 博客(20)
- 收藏
- 关注
原创 Redis-集群与分区
由于集群将数据分散在多个节点(通过槽位Slot管理),客户端需要通过特定逻辑找到键所在的目标节点,才能完成读写操作。Redis Cluster将所有数据划分为16384个槽位(Slot),每个节点负责一部分槽位(如节点A负责0-5460槽,节点B负责5461-10922槽等)。迁移过程中,若客户端请求的键所在槽位正处于迁移状态(部分数据在源节点,部分在目标节点),则源节点返回。集群与分区技术通过数据分散存储,解决了Redis单节点的性能和存储瓶颈,是Redis支持大规模应用的核心手段。
2025-07-18 15:14:22
900
原创 Redis-哨兵模式
哨兵模式通过“监控-检测-选举-转移”的全流程自动化,解决了Redis主节点故障后的服务恢复问题,是中小型Redis集群实现高可用的首选方案。其核心在于通过多哨兵的“共识机制”避免误判,通过Raft-like选举保证决策权威,通过精细化的新主选择规则保证数据一致性,最终实现Redis服务的“少中断、高可用”。
2025-07-17 17:48:54
753
原创 Redis-主从复制
Redis主从复制摘要 Redis通过replicaof命令实现主从数据同步,支持一主一从、一主多从及层级复制结构。主节点可写,从节点只读,需配合哨兵实现故障切换。配置时从节点需指定主节点IP和端口。核心价值包括读写分离提升性能、数据容灾备份,但存在同步延迟问题。同步机制分为全量(首次连接)和增量(断线重连)同步,通过PSYNC命令实现。心跳检测机制维护连接状态并补发丢失命令。局限性在于主节点故障需手动切换,且强一致性无法保证。(149字)
2025-07-17 13:47:23
682
原创 Redis持久化
文件写入与保存”是AOF持久化流程的最后阶段,负责将缓存中的命令最终落盘(写入磁盘文件),其核心是通过。AOF 程序将命令转换为 Redis 协议文本(RESP 格式),追加到服务器的。中的内容写入 AOF 文件,并根据配置的“保存模式”决定是否同步到磁盘(通过。服务器执行完客户端的写命令后,将命令参数、格式等信息发送给 AOF 程序。两个步骤,结合配置的“保存模式”平衡性能与数据安全性。,来平衡性能(减少阻塞)和数据安全性(减少丢失)。缓存中的Redis协议文本(命令)写入操作系统的。
2025-07-16 11:56:15
1027
原创 Dubbo-路由规则
路由规则通过动态配置实现请求的精准分发,是Dubbo服务治理的重要手段。结合注册中心的实时通知机制,可灵活应对流量管理、灰度发布、故障处理等场景,提升系统的稳定性和可扩展性。
2025-07-12 16:26:35
686
原创 Dubbo-SPI
定义:SPI(Service Provider Interface)是JDK内置的服务提供发现机制,用于动态替换和发现服务实现,实现模块解耦,使第三方服务装配逻辑与调用者业务代码分离。应用:被众多框架用于扩展点设计,如Dubbo中大量使用SPI实现协议、负载均衡等功能的定制化扩展。
2025-07-11 17:45:57
230
原创 Spring源码-单例Bean的加载
先来看一下整体顺序图fill:#333;从上图可以知道,主要是在AbstractBeanFactory.doGetBean() 进行bean的加载,我们接着往下看fill:#333;1.如果是 BeanFactory, 去除名字前的"&"。根据别名获取实际beanName2.单例bean在Spring容器中只会被创建一次后续都是会先尝试从缓存中获取4.如果当前容器不存在某个bean定义,则尝试从父容器中获取5.获取并加载当前bean依赖的bean6.创建单例bean。
2025-07-01 18:36:04
515
原创 Spring源码-BeanFactoryPostProcess
Spring提供BeanFactory后置处理器,让我们能够在XML加载完成后对配置信息再次进行修改。我们先通过一个例子看看BeaFactoryPostProcess的使用方式。User有一个password字段,我们希望在配置文件中配置password时通过密文的方式配置并且在使用User时,getPassword()返回的是明文创建一个User类@Override'}';实现BeanFactoryPostProcess。
2025-06-26 10:25:08
636
原创 Spring源码-XML配置
Spring容器初始化的所有步骤都在该方法中,如XML配置文件的加载、后置处理器的注册和执行、Bean对象的初始化及注册到容器中等。将beanName作为key, BeanDefinition作为value,保存到 BeanDefinitionRegistry.beanDefinitionMap 中。当Spring配置文件存在自定义属性时能会根据命名空间正确找到对应的 Handler 类, 进而找到 BeanDefinitionParse 将自定义配置解析并注册到容器中。通过alias注册bean。
2025-06-21 15:32:21
919
原创 OnJava基础卷学习笔记
纯替换关系:子类应该只重写基类已有的方法,而不创建新的方法。这种情况下,子类和基类的类型完全相同。可以用子类对象替换基类对象。子类和父类的关系叫做“is-a”关系。这是一种理想的继承方式。有时候,需要为子类添加新的方法,从而扩展原有的接口,这种情况下,子类也能替换父类,但是并不完美,不能通过基类接口获取子类的新方法,所以用子类替换基类后,子类的新方法并不能起到任何作用。这种关系描述为“is-like-a”关系。
2024-07-20 18:26:08
1328
原创 @Lookup注解用法
概述 @Lookup用于单例组件引用prototype组件。单例组件使用@Autowired方式注入prototype组件时,被引入prototype组件也会变成单例的。@Lookup可以保证被引入的组件保持prototype模式。 使用@Autowired注入 创建一个配置类指定包扫描路径 package com.hl.config;import com.hl.bean.Car;import org.springframework.context.annotatio..
2022-03-14 14:53:34
6346
6
原创 java使用poi给excel文件插入数据
package com.example.demo;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.LinkedHashMap;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermod.
2021-10-15 16:59:36
2025
原创 解析json字符串,替换字符串里存在的特殊字符
import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.commons.lang3.StringUtils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONA..
2021-09-24 09:49:16
1745
原创 设计模式笔记
一、面向对象设计七大原则 在学习设计模式之前,需先学习面向对象设计的七大原则,这样更有助于对设计模式的了解。开闭原则:对扩展开放,对修改关闭。 依赖倒置原则:高层模块不应该依赖于底层模块,应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。也就是说要面向接口编程,不应该面向实现编程。它是实现开闭原则的一种手段。 里氏替换原则:父类出现的地方都可以用子类进行代替。 单一职责原则:一个类应该只包含单一的职责。 接口隔离原则:类应该完全依赖相应的专门的接口。 合成无用原则:应该尽量使用对象组合.
2021-07-09 12:07:48
240
1
原创 java基础重点总结
1.JDK和JRE JRE(Java Runtime Environment):是Java程序的运行环境,包含JVM和运行时所需要的核心类库。 JDK:
2021-06-08 20:58:52
268
原创 springboot整合quartz
一、pox.xml<!--quartz 任务定时器 start--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency><!--quartz 任务定时器 end-->...
2021-06-08 16:40:29
461
原创 springcloud入门案例
一、Eureka Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址 提供者:启动后向Eureka注册自己信息(地址,提供什么服务) 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新 心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态 ...
2021-06-06 18:17:26
143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人