- 博客(45)
- 收藏
- 关注
原创 【面试题】介绍一下缓存雪崩、缓存穿透、缓存击穿,以及如何解决
问题 核心原因 影响范围 解决方案核心思想缓存雪崩 大量缓存同时失效 全局,大量数据 分散失效时间,集群高可用缓存穿透 查询不存在的数据 个别恶意Key 缓存空值或使用布隆过滤器拦截缓存击穿 单个热点Key失效 个别热点Key 使用互斥锁防止并发重建在实际项目中,通常需要结合多种策略来构建一个健壮的缓存系统。例如,为所有缓存Key设置随机过期时间(防雪崩),对查询接口使用布隆过滤器(防穿透),并对特定的热点Key使用互斥锁策略(防击穿)。
2025-11-18 23:00:10
903
原创 【面试题】缓存先删漏洞解决策略(示例代码)
根据业务需求选择合适方案,没有银弹一般场景推荐延迟双删,平衡性能与一致性强一致场景使用分布式锁,牺牲性能保证正确性组合使用多种方案往往能获得更好效果选择方案时要综合考虑业务重要性、并发量、技术成本等因素,找到最适合的平衡点。
2025-10-29 22:58:02
393
原创 【面试题】缓存先删后写如何避免窗口期的旧数据写入缓存
强一致性场景(如库存、支付):优先用分布式锁,严格控制读写顺序。高并发、可容忍短暂不一致:用延迟双删(简单)或版本号机制(性能好)。读多写少场景:用读写锁隔离,平衡性能和一致性。
2025-10-29 22:54:44
695
原创 【JAVA8】新特性
Java 8是Java发展的重要里程碑,引入了多项革命性特性:1)Lambda表达式和函数式接口简化了函数式编程;2)Stream API提供了高效的集合流式处理;3)默认方法允许接口扩展而不破坏现有实现;4)新日期时间API解决了线程安全问题;5)Optional类优化了null处理。这些改进显著提升了Java的代码简洁性、可读性和性能,使Java支持函数式编程风格,同时保持向后兼容性。
2025-10-13 12:07:23
264
原创 无法访问org.springframework.boot.SpringApplication
如何解决无法访问org.springframework.boot.SpringApplication
2025-05-23 21:33:48
509
原创 【面试题】redis大key问题怎么解决?(key访问的次数比较多,key存的数据比较大)
针对 Redis 中大 Key(数据量大且访问频繁)的问题,需从 数据拆分、访问优化、架构设计 等多维度综合解决。
2025-02-19 00:03:02
1196
原创 【RocketMQ】推送消息之DefaultLitePullConsumer和DefaultMQPullConsumer的区别
在RocketMQ中,DefaultLitePullConsumer和DefaultMQPullConsumer有如下多方面区别
2025-02-07 00:23:42
665
原创 【项目初始化】自定义异常处理
我们在项目初始化的工作之一就是要自定义异常处理,用来处理项目中出现的各种异常,如业务异常、系统异常等等。这些属于项目的通用基础代码,在任何后端中都可以复用。
2025-01-22 16:14:55
502
原创 【CI/CD构建】关于不小心将springMVC注解写在service层
之前写一个接口的时候没有察觉到将@RequestBody这个注解带到service层了。今天提交代码的时候,插件没有检测到这个低级错误,导致试飞构建连maven编译都过不了,maven找不到程序包org.springframework.web.bind.annotation这个包
2025-01-13 11:36:07
736
原创 ES-深度分页问题
什么是深度分页在 Elasticsearch(ES)中,深度分页是指从大量的搜索结果中获取较靠后的页面数据。例如,当用户请求查询结果的第 100 页,每页显示 10 条记录,这就涉及到深度分页。通常,在 ES 中,查询是分布式的,数据存储在多个分片(shard)上。当进行分页查询时,每个分片都要返回自己的一部分结果,然后在协调节点(coordinating node)进行汇总排序,得到最终的结果集。
2025-01-05 18:32:28
1325
原创 RestClient操作Elasticsearch
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
2025-01-01 19:29:26
670
原创 javaweb项目(eclipse版 + idea版)——蛋糕商城
本文介绍了一个基于Servlet+JSP技术的线上蛋糕商城项目,包含完整的项目资料和技术实现方案。项目采用Bootstrap+CSS前端框架和MySQL数据库,具备用户注册登录、商品浏览选购、购物车结算等核心功能,同时提供后台管理模块(用户管理、商品管理等)。项目资料包含Eclipse和IDEA双版本源码、数据库SQL文件、论文及答辩PPT,可复用为其他商城系统。效果图展示了完整的用户交互流程和后台管理界面,技术方案成熟实用,适合作为电商类项目开发参考。
2024-12-04 19:54:18
916
原创 用友畅捷通实习日记——第一天
坐了十四个半小时的火车来到用友的总部——用友产业园,还没开始干活坐车就要累坏了。入职之后,感觉公司的人都很好,导师也很好,第一天里熟悉了公司的办公,搭建了开发环境。不过可能由于前一天的舟车劳顿让我有点不在状态,后续我会探究如何提高自己入职后的工作效率以及团队协作效率,在畅捷通有更多的收获,也希望有过实习经验的友友们能在评论区分享自己的实习经验哈。希望后面对于实习工作越来越得心应手,加油,冲冲冲!
2024-10-08 21:22:31
360
原创 redis——哨兵机制
redis中提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。主从复制是实现redis高可用性的基石,从节点宕机时我们仍然可以将请求发送给主节点或者其他从节点,而当主节点宕机的时候,无法执行写操作,无法自动选择一个Slave节点切换成Master节点,也就是无法做到自动故障切换,这个时候就需要用到我们的哨兵机制。
2024-10-06 17:05:55
701
原创 面经4——亚信
面经4——亚信 3、MySQL的分页是怎么实现的?了解过底层原理吗?>MySQL 的分页主要依赖于 SQL 语言中的 `LIMIT` 子句来实现。`LIMIT` 子句用于指定从结果集中返回多少行数据。在分页查询中,通常还会配合使用 `OFFSET` 子句来指定从哪一行开始返回数据。ps:可以结合一下自己的项目介绍项目中哪里用到了分页,为什么要用到分页?分页有什么好处?
2024-09-27 20:15:05
494
原创 JAVA8新特性——Optional
`Optional` 是 Java 8 引入的新特性之一,它是一个容器类,代表一个可能包含或者不包含实际对象的值。其目的是为了减少代码中空指针异常(`NullPointerException`)的发生,并使得代码更加安全和易读。使用 Optional 可以避免直接返回 null,从而减少空值检查。
2024-09-20 22:27:17
915
原创 JAVA8新特性——Stream
Stream流的出现极大的方便了我们对数据的处理,作为处理数据的一种通用方式。它提供了一种高效且灵活的方法来执行诸如过滤、映射、汇总等操作。Stream API 可以用于任何实现了 Iterable 接口的数据结构,或者能够转换为支持流式处理的对象。
2024-09-19 21:43:28
1114
原创 Redisson分布式锁主从一致性问题
单机模式下,服务器宕机会造成严重的后果,因此企业实际开发中往往是多台服务器集群模式。集群模式下分为主节点和从节点,主节点负责写操作,如增删改,从节点负责读操作,从主节点中读取数据,因此数据主要存在主节点。主从同步不可避免存在延迟,这就会导致当Java应用向主节点发送获取锁的请求,主节点接收请求后,锁的信息存储到主节点,此时主从之间还没来得及同步,主节点发生宕机,redis的哨兵发现主节点宕机后会在剩余的从节点选择一个作为新的主节点,但此时新的主节点没有之前的锁,即之前设置的锁已失效,当新的线程发来请求,又
2024-09-17 10:30:00
665
原创 EasyExcel的基本使用——Java导入Excel数据
使用EasyExcel导入Excel数据有两种方式无论哪种方式我们都需要建立Excel表格和Java对象的绑定首先我们需要根据Excel表头定义一个对应的类
2024-09-16 16:05:38
1021
原创 Redis——分布式锁
为什么要有分布式锁?在只有一台服务器提供服务的情况下,乐观锁和悲观锁足以解决线程并发导致的问题。但是企业开发中避免不了需要部署多台服务器,即采用分布式系统或集群模式,这时,多台服务器就有多个jvm,对应多个锁监视器,它们之间是独立了,服务器之间的线程并不会共享锁信息,此时很可能会出现并发问题,很容易想到一个解决办法就是将让所有线程共享一个锁监视器,这就是我们分布式锁的基本思路。
2024-09-14 16:37:01
426
原创 RedisTemplate的两种序列化方式
RedisTemplate的序列化方式是指在使用RedisTemplate进行数据存取时,如何将Java对象转换成可以在Redis中存储的形式,以及如何将Redis中的数据转换回Java对象。
2024-09-09 15:02:49
493
原创 resp连接不上远程服务器redis解决办法
之前能连上,后来连不上,这种情况很可能是因为你的主机ip地址发生变更,和你远程服务器安全组放行的ip地址对不上。
2024-09-08 22:08:11
251
原创 MySQL中的索引是怎么实现的?B+树是什么,B树和B+树的区别,为什么MySQL要用B+树?
MySQL中的索引是怎么实现的?B+树是什么,B树和B+树的区别,为什么MySQL要用B+树?
2024-09-02 14:23:12
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2