- 博客(18)
- 收藏
- 关注
原创 面试题-----延时双删
04day1.项目-用户注册组件库解决缓存穿透详细说一下缓存穿透查询一个缓存和数据库都不存在的数据,导致每次请求都到数据库,数据库压力增大缓存空对象:先查缓存 缓存没有 锁 重建缓存 查询数据库 缓存null 设置过期5分钟布隆过滤器:布隆过滤器先做个判断 可能存在 和 一定不存在 数据 多个hash函数运算 对应数组位1 取的时候如果都为1 则可能存在 如果都是0 一定不存在2.redis和数据库的一致性考点:Cache-Aside 异常。
2025-11-21 14:32:14
262
原创 redis设计
方案优点缺点适用场景数据一致性互斥锁实现简单,保证强一致性性能瓶颈,可能死锁写少读多,防缓存击穿强一致性逻辑过期高性能,无阻塞读取短暂数据不一致,实现复杂高并发读,容忍延迟最终一致性定时任务缓存命中率高,稳定实时性差,资源浪费热点数据,可预测访问弱一致性Binlog+MQ完全解耦,实时性强架构复杂,维护成本高写操作频繁,高一致性要求强一致性是的,这四种方案确实就是MySQL与Redis数据一致性互斥锁- 强一致性,适合核心业务逻辑过期- 高性能最终一致性,适合高并发读。
2025-11-13 10:57:04
853
原创 ThreadLocal
在线程生命周期内,实现跨方法、跨类的数据共享,同时保证线程安全。用户上下文- 解决身份信息传递问题事务管理- 解决数据库连接一致性问sessionsql是什么好的,这是一个非常关键的问题。"sessionsql" 并不是一个标准的技术术语,它很可能是一个口头的、简化的说法,通常指的是"Session"和"SQL"这两个概念在 Web 应用与数据库交互过程中的结合。字面组合理解:指在一个数据库会话(Session)中执行的所有SQL语句。特定框架理解:特指MyBatis中的SqlSession对象。
2025-11-12 15:24:08
792
原创 JVM内存模型
第一步:编写代码第二步:根目录下执行javac,编译生成.class文件E:\项目demo\SpringAiToolDemo\src\main\java\com\example\tuling\jvm> javac Math.javaE:\项目demo\SpringAiToolDemo\src\main\java\com\example\tuling\jvm> javap -v Math第三步:退回上级,执行java命令,运行。
2025-11-11 14:48:11
531
原创 Redis数据结构之Zset实现热点资讯排行榜
调用时机确认:您的理解是完全正确的。viewNews接口就是那个“用户点击的接口”,它在用户从排行榜列表点击进入详情页时被调用。这个调用既是数据获取行为(获取详情),也是用户行为记录(记录一次有效点击)29。设计优点:这种将“排行榜展示”和“详情查看”分离的设计非常经典且高效。它避免了在加载排行榜时一次性查询大量详情数据,极大地提升了首页的性能和用户体验。
2025-08-25 12:00:58
520
1
原创 库存超卖场景
方案适用场景优点缺点原子操作简单扣减高效、简单需手动补偿令牌库存库存量小避免超卖初始化慢库存分片高并发单库存减少锁冲突多库存秒杀性能差Lua 脚本复杂逻辑灵活、原子性脚本维护成本CAS 乐观锁并发适中无锁、线程安全高并发重试多简单场景:优先使用原子操作或令牌库存。复杂逻辑:推荐Lua 脚本。超高并发:可结合库存分片 + Lua 脚本。“在高并发库存抢购场景中,超卖问题主要由于并发扣减库存时缺乏原子性控制导致。
2025-08-22 14:42:46
750
1
原创 面试题-16道必看
1.mq作用异步 解耦 销峰2.产品选型Kafka优点: 吞吐量非常大,性能非常好,集群高可用。缺点:会丢数据,功能比较单一。使用场景:日志分析、大数据采集RabbitMQ优点: 消息可靠性高,功能全面。缺点:吞吐量比较低,消息积累会严重影响性能。erlang语言不好定制。使用场景:小规模场景。RocketMQ优点:高吞吐、高性能、高可用,功能非常全面。缺点:开源版功能不如云上商业版。官方文档和周边生态还不够成熟。客户端只支持java。使用场景:几乎是全场景。
2025-08-19 17:56:27
883
原创 redis分布式锁(解决的问题,应用场景)
问题描述核心原因解决方案备注死锁客户端崩溃后锁无法释放,系统永久阻塞无锁自动过期机制设置超时时间基础中的基础锁误删业务执行超时后,客户端释放了别人持有的锁释放锁时未校验归属使用 Lua 脚本保证GETDEL的原子性必须实现锁续期业务执行时间超过锁超时,导致锁失效,其他客户端闯入锁超时时间与业务执行时间不匹配看门狗机制,后台线程自动续期Redisson 等库已内置单点故障Redis 宕机导致锁服务不可用Redis 单点部署主从复制或集群模式保证高可用提升服务可用性主从切换锁失效。
2025-08-04 11:39:16
1086
2
原创 MCP与functioncall实战与对比
在面试中,您可以这样解释Function Call:面试官:请解释一下您代码中的Function Call是如何工作的?您:在我的代码中,Function Call是指直接调用已定义的函数来执行特定任务。我使用StructuredTool.from_function方法将普通的函数封装成StructuredTool对象,这样可以在后续的流程中方便地引用和执行。
2025-04-22 17:54:23
1012
原创 MCP模型上下文协议传输(java请求模型MCP案例)
由于 MCP 本质上是一个基于 JSON-RPC 2.0 的协议,你可以手动在 Java 中实现 MCP 协议的客户端或服务端。这意味着你需要自己处理消息的序列化、反序列化、网络通信等细节。
2025-04-18 17:13:35
795
原创 MCP(Model Context Protocol)核心功能及应用
模型上下文协议传输;客户端和服务端的通信协议;两种内置传输类型,一种为标准输入/输出(stdio),一种是服务器发送事件SSE。MCP,全称是 Model Context Protocol (模型上下文协议),可以把它想象成一个AI 应用的 USB-C 接口。就像 USB-C 接口为你的设备连接各种外设和配件提供了一个标准化的方式一样,MCP 为 AI 模型连接不同的数据源和工具提供了一个标准化的方式。
2025-04-18 16:58:55
972
原创 Spring AI Alibaba 对接百炼平台大模型使用详解
SpringAI是一个人工智能工程的应用框架,他的目标是将spring生态系统的设计原则(如可移植性和模块化设计)应用于人工智能领域,并推广使用POJO作为人工智能领域应用程序的构建块Spring AI三、阿里百炼平台获取api_key:(我的-模型-模型广场-api_key)对应模型的api_key。
2025-04-16 11:25:18
1156
2
原创 String 类型 == 出现问题
data是个集合,里面是对象,有name存任务状态比如(01,02,02,04,04)和num ,此处统计个人的任务列表的总的预警次数 和督办次数。数组索引j的值为02,countYJ却没有加一;
2024-01-30 11:42:53
97
1
原创 mybatis foreach
1.数组public int deleteTIdcCqcByIds(Long[] ids);<update id="deleteTIdcCqcByIds" parameterType="String"> update biz_idc_cqc set del_flag = '1' where id in <foreach item="id" collection="array" open="(" separator="," close=")">
2022-04-21 11:10:33
593
原创 stream基本操作
1.过滤后,对某个字段求和maptoDoubledouble sumRackIncome = bizRevenueFlowList.stream().filter(e->e.getProdCode().equals(Constants.RACK_RENT_OUT_CODE)).mapToDouble(e -> (Double.parseDou...
2022-04-07 17:11:24
577
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅