- 博客(198)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 Redis 主从复制模式
Redis主从模式是入门级分布式部署方案,通过主节点写、从节点读实现读写分离和数据备份。核心特点包括部署简单、成本低,支持PSYNC2协议优化增量同步,可采用主从从结构分担复制压力。但存在主节点性能瓶颈、无自动故障转移、数据延迟等局限性,仅适合低并发场景或测试环境。实际生产通常需配合哨兵或集群模式实现高可用。该方案适合业务初期,但对高可用要求严格的场景需升级架构。
2025-09-03 00:19:11
81
原创 Redis 持久化机制详解
• RDB 适合对恢复速度要求高、能容忍少量数据丢失的场景。• AOF 适合对数据可靠性要求极高的场景。之前互联网工作经常用到的。• 混合持久化结合了 RDB 和 AOF 的优点,是 Redis 4.0 及以上版本的推荐方案。当下工作使用的,技术一直在发展这个优势更大。
2025-09-02 21:54:56
233
原创 Elasticsearch 深分页限制与解决方案
遇到Elasticsearch导出超1万条数据时出现"Result window is too large"报错,原因是默认的index.max_result_window限制为10000条。解决方案包括:1)临时调大该参数(有性能风险);2)改用Scroll API(适合批量导出)。经验表明:from+size分页仅适合小数据量,大数据导出应使用Scroll API,实时分页推荐Search After。通过改用Scroll API成功解决了全量数据导出问题。
2025-09-02 18:23:24
133
原创 Elasticsearch 核心知识与常见问题解析
本文系统梳理了Elasticsearch的核心原理与实战经验。关键点包括:1)倒排索引机制实现高效全文检索;2)分片与副本设计保障数据高可用;3)近实时特性通过刷新机制平衡性能与实时性;4)分词器选择(如IK中文分词)对搜索效果的决定性影响;5)Mapping设计规范字段类型与分词策略。实战建议:索引合并优化查询性能、Scroll处理深分页、合理设置分片数(主分片不可修改)。版本兼容性需特别关注,如ES8要求JDK17+。通过系统梳理知识体系,既巩固了基础概
2025-09-02 17:01:00
461
原创 Elasticsearch 核心特性与应用指南
没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群(工作中一般使用阿里云等云厂商的ES服务,很少有自己搭建的):节点对外表现对等(每个节点都可以用来做入口),加入节点自动负载均衡。:输入/输出格式为JSON,意味着不需要定义Schema,快捷方便。:可以扩展到PB级的结构化和非结构化数据,支持海量数据的近实时处理。,它能提供我们最相关的搜索结果(relevance-相关性)。,cluster(集群)分布式部署,极易扩展,这样很。:可根据不同的用途分索引,可以同时操作多个索引。
2025-09-02 15:43:08
406
原创 数据库事务隔离级别与 MVCC 机制详解
事务隔离级别定义了多个并发事务之间的相互影响程度,从低到高分为四个级别,不同级别在数据一致性和系统性能之间呈现不同的平衡关系。1.1 读未提交(Read Uncommitted)• 定义:最低的隔离级别,允许当前事务读取其他事务尚未提交的数据变更。• 核心问题:无法避免脏读、不可重复读和幻读。读取到其他事务未提交的“临时数据”,若后续事务回滚,当前读取的数据将变为无效。• 适用场景:对数据一致性要求极低,仅追求极致性能的场景(如临时统计查询,无需精确结果),实际业务中极少使用。业务场景基本都不用。
2025-09-01 22:28:32
382
原创 JRebel 热部署配置
自动编译配置:快捷键 ctrl+shift+alt+S注册表配置:快捷键 ctrl+shift+alt+/启动类配置:不用配置也可以:
2021-05-08 19:32:15
1610
原创 JVM 知识点
JVM如何跨平台:不同系统有不同的JVM环境,JRE不同运行时候进行跨平台。 c和c++根据选择的不同类库在编译时跨平台,java在运行时跨平台JVM分为三大块:年轻代 由End、S0和S1组成 年老代 持久代(JDK1.8取消了)年轻代分为三大块:当发生年轻代GC(YGC)时End区域的对象被其他对象引用时,则移到幸存者S0、S1区,未引用的立即清除,当S0和S1多次YGC都还存在的话,则移到老年代区域。GC分为两大块:minor GC 清理新生代和老年代 Full GC
2021-04-08 18:46:12
356
原创 HashMap 原理
HashMap由数组和链表组成:数组为主体,链表是为了解决hash冲突而存在的。JDK1.8中若链表长度超过了8(含8),则链表转化为红黑树。jdk1.7链表从头部插入,jdk1.8链表从尾部插入。jdk1.8中entry替换为node。HashMap继承AbstractMap并实现了Map接口:基于hash原理通过get()和put()存储和获取对象。hash冲突:如果根据hash函数算出来的hash值对应的数据位置不含链表(当前entry的next指向null),那么查找和添加很快,仅.
2021-04-06 22:03:20
423
原创 【快手面试题】统计数组中出现次数超过一半的数字
统计数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2因为没写过这种场景,自己实现的一版,仅供一种思路参考: public static void main(String[] args) { int[] array = {1, 2, 3,3, 3, 3, 3, 3, 2, 2,.
2021-04-06 12:13:55
258
原创 HashMap put 方法,都做了那些事情?
/** * Associates the specified value with the specified key in this map. * If the map previously contained a mapping for the key, the old * value is replaced. 将指定的 key 与 value 相关联。 如果在 map 中指定的 key 存在了,则旧的 value 将被替换 *.
2021-03-31 00:42:37
408
原创 将枚举类型转换成流
/** * 将枚举类型转换成流 * @param enumeration 需要转换成流的枚举对象 * @param <T> 泛型类型 * @return 返回转换之后的 Stream 对象 */ public static <T> Stream<T> of(Enumeration<T> enumeration){ return StreamSupport.stream( ...
2021-03-27 11:25:40
498
原创 HttpServletRequest 转 Map
public static Map<String, Object> getJsonParam(HttpServletRequest request) throws IOException { try (var br = new BufferedReader(new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8))) { var sb = new StringB...
2021-03-26 17:35:07
568
原创 IP 相关工具类
import com.gaolv.utils.core.StrUtil;import com.gaolv.web.constant.Constants;import lombok.AccessLevel;import lombok.NoArgsConstructor;import lombok.extern.log4j.Log4j2;import javax.annotation.Nullable;import javax.servlet.http.HttpServletRequest;..
2021-03-26 17:25:24
238
原创 Web相关工具类
import lombok.AccessLevel;import lombok.NoArgsConstructor;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import java.util.Optional;import javax.annotatio..
2021-03-26 15:31:47
214
原创 注入静态对象类
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;/** * 注入静态对象类 * 其他类中直接静态使用,不用注入。一次注入,多次使用,使用便捷。 */@Componentclass BaseStaticObject { protected static UserMapper userMapper; ..
2021-03-26 14:59:43
367
原创 甲乙2个人去买冬瓜,甲买差7元,乙买差9元,合买差1元,冬瓜多少钱?
/** * 甲乙2个人去买冬瓜,甲买差7元,乙买差9元,合买差1元,冬瓜多少钱? * 答案:甲:8元、乙:6元 */ public static void main(String[] args) { // 冬瓜 = x、甲 = i、乙 = j for (int x = 0; x < 10000; x++) { for (int i = 0; i < 10000; i++) { ...
2021-03-12 15:19:44
2716
原创 Object wait() 和 Threead sleep() 疑问解答,练习
问题:红框得语句是否会输出?答案:会的。答案解析:1.t1 线程开始执行,遇到 Thread.sleep() 后,让出 CPU。2.t2 线程(下面那个县城)开始执行,遇到 t1.wait() 后,让出 CPU。3.5 秒过去后,t1 线程通过线程调度,获取到 cpu ,进行执行,执行结束后,让出 CPU。4.t2 线程通过线程调度,获取到 cpu,通过代码计数器定位后(因为上次让出 CPU 时,t1.wait() 方法已经执行过了,下次获取 cpu 时,会执行下一条语句),进行..
2021-03-12 15:08:42
266
原创 idea 明显代码错误,编译器不提示
idea 明显代码错误,编译器不提示现象:F2 会提示:错误分析中解决思路:1.查找相关案例,按他人经验排错2.结合自身现状分析问题3.采用方块推进法进行排查问题解决方案:安装了 Illuminated Cloud 插件,关闭启用就好了可信度较高,解决方案参考:点击跳转...
2020-11-10 17:57:05
2377
原创 支付宝同一账户下多个应用,资金对账问题-调研
调研渠道:查阅支付宝文档 咨询支付宝人工客服结论:不同应用只是公钥、密钥不同,只是方便接入方隔离。资金走的同一账户,无法做资金隔离,会产生对账问题解决方案:要想做资金隔离,必须先做到账户隔离...
2020-10-30 21:48:44
1217
原创 If you want an embedded database (H2, HSQL or Derby), please put it on the clas
Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following: If you want an embedded database (H2..
2020-07-05 14:21:05
4110
1
原创 Spring Cloud Config的yml文件中spring.cloud.config.server配置有误
***************************APPLICATION FAILED TO START***************************Description:Invalid config server configuration.Action:If you are using the git profile, you need to set a Git URI in your configuration. If you are using a nativ..
2020-07-05 14:19:03
6265
原创 No instances found of configserver (xxxxxx)
‘xxxxxx’(yml文件中配置的service-id)未从注册中心找到,xxxxxx为Spring Cloud Config服务解决:yml文件中配置的service-id(‘xxxxxx’),是否和注册中心Spring Cloud Config服务名称是否一致 配置config微服务项目 启动config微服务项目,并注入到注册中心(注册中心:Eureka、Zookeeper等)java.lang.IllegalStateException: No instances found of
2020-07-05 14:17:47
14620
原创 RabbitMQ配置错误
RabbitMQ配置错误最易犯的错误为port填写为15672(网页端口),正确为5672spring: rabbitmq: host: xxx port: 5672 virtual-host: / username: xxx password: xxx publisher-confirms: true #如果对异步消息需要回调必须设置为true Failed to check/redeclare auto-delete queue(s).org.s
2020-07-05 14:15:57
3620
原创 聚簇索引与非聚簇索引
聚簇索引介绍:聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于实现方式,例InnoDB的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。当表有聚簇索引时,他的数据行实际放在索引的叶子页(leaf page),术语“聚簇”。聚簇索引实现:存储引擎负责实现索引,因此不是所有的存储引擎都支持聚簇索引。InnoDB,B+Tree 按顺序存储数据,可以用来做Order B和Group By从操作。帮助数据库服务器避免排序和临时表。 将B+tree索引和数据
2020-06-03 23:53:42
455
原创 Could not find class [org.springframework.cloud.client.loadbalancer.reactive.OnNoRibbonDefaultCondi
Eureka注册中心启动异常:原因:jar包不同org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.chao.LearningApplication]; nested exception is java.lang.IllegalArgumentException: Could not find
2020-05-27 10:53:54
18212
4
原创 将file压缩zip文件
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.List;import java.util.Map;import ja...
2020-05-21 16:55:58
512
原创 mysql select 执行后会发生什么?mysql服务器架构
mysql服务器架构客户端Navicat 12 for MySQL、SQLyog等服务器层链接处理、授权认证、安全等 缓存层 解析、词法、语法分析 优化SQL,生成SQL执行计划 跨存储引擎的功能:存储过程、触发器、视图等 通过API将SQL执行计划发送给存储引擎层存储引擎层存储引擎层屏蔽了不同存储引擎之间差异,对上层服务器层提供的接口是透明的。 负责MySQL中数据的存储和提取。每个存储服务器都有自己的优势和劣势。 常用的InnoDB和MyISAM等引擎mysql s.
2020-05-16 00:06:07
276
原创 @Component和@Service、@Controller、@Repository区别
相同点: @Component为@Service、@Controller、@Repository的元注解,四个实现功能是一样的不同点为区分业务层:@Component 业务特殊组件层,如handler类 @Controller 业务控制层 @Service 业务逻辑层 @Repository 业务资源层@Component用来做什么? 被@Component标注的类被视为自动检测的候选者;@Component何时用?在SpringBoot中使用@Component...
2020-05-13 18:26:12
6289
原创 java图片转Base64工具类
import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.File;import ja...
2020-05-07 10:10:23
1320
原创 金额工具类
import java.math.BigDecimal;/** * 金额工具类 */public class AmountUtil { /** * 汉语中数字大写 */ private static final String[] CN_UPPER_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍"...
2020-05-06 17:43:59
269
原创 校验数据对象不能为空
import org.apache.commons.lang3.ArrayUtils;import java.lang.annotation.Annotation;import java.lang.reflect.Field;import java.util.Arrays;import java.util.List;import java.util.stream.Collector...
2020-05-06 09:53:45
2996
原创 日期工具类
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * 日期工具类 **/public class DateUtils { /** * 字符串转Date * @par...
2020-05-05 14:08:30
138
原创 对象拷贝工具类
import org.apache.commons.beanutils.PropertyUtils;import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import...
2020-05-05 14:08:04
194
原创 java集合工具类
import java.util.Collection;import java.util.Map;/** * 集合工具类 */public final class CollectionUtils { public static boolean isNotEmpty(Collection collection) { return collection != ...
2020-05-04 16:16:39
226
原创 java类转google的JsonObject
java类转google的JsonObjectimport com.google.gson.Gson;import com.google.gson.JsonObject;public class Test{ public static void main(String[] args) { Data data = new Data(); da...
2020-05-04 16:15:47
1346
原创 LocalDateTime、Date、String互转
public static void main(String[] args) { //当前日期+时间 LocalDateTime currentDateTime = LocalDateTime.now(); System.out.println(currentDateTime.toString()); //当前日期 ...
2020-03-05 19:07:50
824
原创 java 一筐鸡蛋: 1个1个拿,正好拿完。 2个2个拿,还剩1个。 3个3个拿,正好拿完。 4个4个拿,还剩1个。 5个5个拿,还差1个。 6个6个拿,还剩3个。 7个7个拿,正好拿完。
一筐鸡蛋: 1个1个拿,正好拿完。 2个2个拿,还剩1个。 3个3个拿,正好拿完。 4个4个拿,还剩1个。 5个5个拿,还差1个。 6个6个拿,还剩3个。 7个7个拿,正好拿完。 8个8个拿,还剩1个。 9个9个拿,正好拿完。 问筐里最少有多少鸡蛋?public class Test { public static void main(String[] args) { ...
2020-02-11 11:50:26
6440
2
原创 You are using pip version 9.0.1, however version 19.2.3 is available.
pip._vendor.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.pip._vendor.requests.packages.urllib3.exceptions.ReadT...
2019-09-17 20:01:23
2794
1
java email发送测试
2016-08-10
img MyBatisCodeHelper-Pro-1.9.4-IDEA173-IDEA182.zip
2018-10-11
plsql恢复存储过程包执行前的代码
2015-01-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人