自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 Redis中的Pub/Sub、事务、索引、管道、脚本

Redis高级功能摘要 Redis提供多种消息传递和数据处理机制:Pub/Sub实现发布-订阅模式,消息通过频道传递但不保证可靠性;事务支持命令打包执行但缺少原子性和隔离性,需配合WATCH实现乐观锁;索引功能允许基于JSON/HASH字段查询;管道技术优化批量请求处理;Lua脚本确保服务器端原子操作并支持缓存复用。这些功能扩展了Redis作为键值存储的能力,适用于不同场景,但需注意各自的限制,如Pub/Sub消息丢失风险、事务无回滚机制等。

2025-07-08 14:07:22 722

原创 Redis中常见的基础和高级数据结构

Redis是一个高性能的键值存储系统,支持多种数据类型: String:二进制安全字符串,支持原子计数操作 List:链表结构,可实现栈、队列和阻塞队列 Set:无序唯一集合,支持交并补操作 Hash:键值对集合 Sorted Set:带分数的有序集合 Streams:仅追加日志,支持消费者组模式 每种数据类型都有丰富的操作命令,如String的SET/GET、List的LPUSH/RPOP、Streams的XADD/XREAD等。Redis广泛应用于缓存、队列、排行榜等场景。

2025-07-08 13:33:56 620

原创 微服务架构:原理、挑战与设计实践

微服务是一种去中心化架构,将单体应用拆分为独立运行的小型服务,通过远程调用通信。相比单体架构,微服务具有更好的解耦性和封装性,但面临数据一致性(采用最终一致性)、调试和安全性等挑战。设计时需考虑服务划分标准(业务需求、功能自主等)、通信模式(同步/异步/事件驱动)和技术选型(语言、框架等)。此外,集中式日志和监控对微服务管理至关重要。

2025-07-06 14:51:38 767

原创 Synchronized原理、锁升级流程等

Synchronized 机制通过锁解决多线程数据不一致问题。计算机多级缓存导致线程间数据不同步,Monitor 结构(Owner、EntryList、WaitSet)管理线程阻塞/唤醒。JDK 1.6 引入锁升级(偏向锁→轻量级锁→重量级锁)减少性能开销。对象头存储锁状态,轻量级锁通过 CAS 操作修改对象头,偏向锁则记录线程 ID 优化重入性能。锁升级策略平衡并发效率与资源消耗,避免不必要的内核态切换。

2025-07-06 13:05:33 527

原创 深度解析Mysql中MVCC的工作机制

流程(重点):在修改数据前,innodb引擎会在。,保证读取时其他并发事务不能修改当前记录,解决。,保证读取时其他并发事务不能修改当前记录,解决。,如果可见则返回当前mvcc版本的行数据,如果。:select查询,不加锁,读取记录数据的。:select查询,不加锁,读取记录数据的。,则通过mvcc的回滚指针。定义:维护一个数据的。

2025-06-04 09:18:09 770

原创 使用Redis的四个常见问题及其解决方案

本文介绍了Redis缓存相关问题的解决方案。缓存穿透可通过缓存空数据或使用布隆过滤器解决;缓存击穿可采用互斥锁或逻辑过期策略;缓存雪崩可通过分散TTL、集群部署及多级缓存应对。双写一致性方面,高一致性方案包括延迟双删和读写锁,弱一致性则可借助MQ或Canal实现数据库与Redis的同步。这些方案针对不同场景提供了Redis缓存优化的有效方法。

2025-06-03 16:40:24 902

原创 网络模型 — Java NIO + 多路复用的代码实践

本文介绍了三种网络I/O模型及其实现方式:BIO:同步阻塞模型,线程在I/O操作时被阻塞;NIO:同步非阻塞模型,通过轮询或多路复用(如epoll)监听通道事件,核心组件包括Buffer、Channel和Selector;AIO:异步非阻塞模型,无需轮询。

2025-06-03 11:15:41 667

原创 线程安全 — 场景、解决、悲观锁、乐观锁

本文探讨了线程安全问题及解决方案。线程不安全主要发生在多个线程同时复合操作共享对象时,关键在于判断对象是否被共享及是否存在复合操作。

2025-06-02 13:21:36 647

原创 HTTP请求与HTTP响应介绍及其字段

在下一次请求时,客户端可以用 If-Modified-Since来判断。

2025-06-02 11:42:44 1068

原创 Service Worker介绍及应用(实现Web Push机制)

Service Worker 是一种运行在浏览器后台的 JavaScript 代理脚本,独立于网页主线程,可拦截网络请求实现离线缓存、推送通知等功能。其核心特性包括:后台运行、事件驱动、HTTPS 环境下工作、无法直接操作 DOM。主要应用场景包括离线访问(通过缓存静态资源)、推送通知(基于 Push API)、后台数据同步以及提升 PWA 应用性能。

2025-05-28 22:06:34 1331

原创 AIGC的常见概念

存储实体-关系-实体的三元组关系,能减轻RAG产生的幻觉问题(比如:匹配的段落正好缺少某个关键信息)原有大模型在经过大量数据集的喂养后,内部的参数发生改变,参数可以理解为一个n行m列的矩阵与预训练的区别微调是在预训练模型的基础上实施的微调数据量小,但标注精确,针对特定任务,而预训练使用大规模的未标注数据,如互联网上的文本、图像等微调注重特定功能,预训练注重学习通用的特征当训练LLM的时候,LLM可能会遗忘之前掌握过的能力,即当LLM某个方面的能力增强时,必然会导致其他能力的削弱。

2025-05-28 15:09:00 749

原创 提升Spring项目性能的常见方法

2025-05-23 13:00:00 173

原创 HTTP篇—如何利用HTTP缓存提高响应速率

HTTP 缓存是一种用于提高网页加载速度、减少网络流量和降低服务器负载的技术。它允许客户端(浏览器)或中间代理(CDN)存储网页资源的副本,比如浏览器将缓存数据存储在用户计算机的本地磁盘中,而CDN将缓存数据存储在 CDN 服务提供商管理的、离用户最近的CDN服务器当中。这样后续请求就能直接从这些缓存中获取资源,而无需再从后端数据库检索数据。图1和图2分别来自CSDN的头像请求(注意要关闭"缓存禁用"选项),图1使用内存缓存,因为是短时间的连续请求,图2使用磁盘缓存,因为是隔了相对较长的时间发起的请求。

2025-05-23 10:00:00 786

原创 编程思想之分片

分片”本质上是一种把大数据、大任务拆成小块并行或分布式处理的策略。分片后的“片”,可以在同一个系统中分别处理,也可以丢给不同机器执行,从而增强系统的效率和可维护性。

2025-04-22 15:00:00 684

原创 编程思想之抽象

抽象”是软件开发中的一个核心思想,它指的是:屏蔽细节、保留本质,从而建立简洁清晰的模型来解决复杂问题。

2025-04-22 10:00:00 405

原创 Vert.x学习(五)—— SockJS,搭建客户端,与后端服务器进行通信

为前端提供类似 WebSocket 的接口与后端的vertx服务器创建连接。

2025-04-17 17:00:00 1743

原创 Vert.x学习(四)—— Vertx.Web,网页应用开发

Session处理器:确保session从session储存器中被自动地找出来,然后在到达应用程序处理器之前将其放置在路由上下文中,响应完成之后 session 会被自动写回到储存器中。定义:路由器将找到匹配该请求的第一个路由,并将请求传递给该路由,并持有一个对应的处理器用于接收请求,然后结束响应或把请求传递给下一个匹配的处理器。标头的GET或HEAD请求(表示资源在上次被修改的时间),如果至此资源没有被修改过,则返回。在前一个处理器中put对象,然后再下一个处理器中get该对象,这两个处理器必须通过。

2025-04-17 12:32:44 867

原创 Vert.x学习(三)—— WebSocket、数据共享、流式传输、Record Parser

作用:在 Vert.x 中,异步的写调用是立即返回的,而写操作实际是在内部队列中排队写入。所以vertx提供了控制流式传输的接口(类比管道):ReadStream(输入流)、WriteStream(输出流)。可作为键值和值的类型:不可变(String,int)和实现Shareable接口的类型(Buffer,JSON对象或自定义实现);UDP以数据报为单位进行传输,通常情况不能发送大于MTU的数据报(数据链路层中的单次传输数据的最大尺寸)可作为键值和值的类型:不可变(String,int)、实现。

2025-04-15 16:00:00 851

原创 Vert.x学习(二)—— TCP服务端、客户端和HTTP服务端、客户端

HTTP/2 帧:HTTP/2 帧以二进制压缩格式存放内容。可以交错发送,然后根据每个帧头的数据流标识符重新组装。因此不受流量控制限制,会被立即发送或接收。

2025-04-15 11:23:27 1393

原创 Vert.x学习(一)—— 基本使用与介绍

定义:类似Actor(一个独立的计算单元,专门处理消息传递和任务执行,Actor双方直接通信,即点对点交互),完全自治,actor如果要进行集群,此时可能需要引入另一个actor来进行负载均衡,所以vert.x采用了Event bus事件总线作为Verticle交互的中间件,不同的 Verticle 实例通过向 Event Bus 上发送消息来相互通信,每个 Verticle 是一个。另外,事件总线中的消息不会持久保存。map顺序组合,将上一步的future的结果传递给下一步,但可以返回任意类型的值。

2025-04-14 17:14:26 565

原创 vertx学习前导——异步、响应式编程如何解决高并发的问题

vertx是一个全异步的网络工具包,在学习vertx前,先了解有关异步编程的常识和概念。

2025-04-14 16:46:09 1069

原创 算法中的奇技淫巧 - 路径判重

这道题是经典的回溯思想,对每个操作数有选和不选两种结果,对于这道题,不选就是不做任何处理即可,但脑子也是日常宕机了,多了一次没必要的递归操作。所以采用String来记录路径,格式为。,然后将该路径记录在Set中判重即可。使用set进行路径判重。

2025-03-13 22:34:32 162

原创 完美解决ClassNotFoundException和NoClassDefFoundError的所有情况!

在库中发现多了jjwt-api、jjwt-impl、jjwt-jackson,在jjwt-impl依赖中即可找到该类。去github上找相关的jwt版本(一般先找最新的版本)控制台报错:没有找到对应的security包下的。去对应的库找发现没有security包。找到所需的类,然后替换为该版本即可。

2024-11-15 21:57:33 567

原创 算法 - 动态规划 - 01背包

请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。作为背包的容量,求(前i个物品价值和)能组成这个容量的方案数是多少。,求能装满该容量的最大物品价值和 是否等于 该容量。index为容量,value为能装满的最大价值。**目标值:**所有前面符号位为"+"的数字和。作为背包的容量,求在容量内的最大字符串个数。**物品价值:**字符串的01个数。,value为相应的最大字符串个数。**物品价值:**num[i]的最大子集的长度,该子集中。向数组中的每个整数前添加。**目标值:**m,n。

2024-11-02 19:51:36 359

原创 LangChain4j实战项目 - RAG、Tool、Agent

一个包含Agent + Tool + RAG的一个简易机器人项目,后面可能会慢慢扩展其他功能,比如知识图谱等

2024-10-27 13:31:55 1564

原创 个人总结 - LangChain4j应用(完结)

LangChain4j是一个旨在简化大语言模型(LLMs)与Java应用程序集成的框架。主要介绍:Classification、Image Models、Spring Boot 集成、Logging、Observability、Integrations(集成)

2024-10-23 14:04:45 2955

原创 个人总结 - LangChain4j应用(4)

LangChain4j是一个旨在简化大语言模型(LLMs)与Java应用程序集成的框架。主要介绍:RAG

2024-10-23 13:26:40 2756

原创 个人总结 - LangChain4j应用(3)

LangChain4j是一个旨在简化大型语言模型(LLMs)与Java应用程序集成的框架。主要介绍:Tools

2024-10-23 13:14:50 1495

原创 个人总结 - LangChain4j应用(2)

LangChain4j是一个旨在简化大型语言模型(LLMs)与Java应用程序集成的框架。主要介绍:AiServices

2024-10-23 13:11:38 1520

原创 个人总结 - LangChain4j应用(1)

LangChain4j是一个旨在简化大型语言模型(LLMs)与Java应用程序集成的框架。主要介绍: Chat and Language Models、Chat Memory、Model Parameters、Response Streaming、

2024-10-23 12:26:41 1581

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除