- 博客(19)
- 收藏
- 关注
原创 TokenMall开发日志:商品业务
这样一个空的内容,这个异常发生在 Redis 的序列化器内部,所以在程序层面看不出什么问题,因此,我也花了相当长时间去排除…来捋一下商品业务的链路,拿商品详情为例,前端发送查询商品详情请求,程序接收请求并进行校权,权限不通过则拒绝,通过则执行 service 的商品详情方法,然后 service 层的业务去调用 mapper 层的业务,从而直接访问数据库的数据,业务端到端跑通,但是在高并发场景下,这个商品详情数据可能会被大量访问,所以每次的查询对数据库压力很大,因此考虑进行使用缓存来优化。
2026-09-21 22:49:47
352
原创 3.4 黑马点评 -- 三大经典缓存问题的应对
在这个设计下,虽然会造成短暂的数据不一致问题,但是却保证了业务的稳定性。其实本身的逻辑比较清晰,第一个拿到锁的线程就负责更新数据,这把锁覆盖整个子进程,直到更新结束。在这个过程中如果其他线程来获取这把锁失败了,那么他们就执行直接输出旧数据的方式,从而来保障业务的基本运营。这样,其实如果在理想状态下就已经很好地完成了任务,不过,就像我们前面所说的,这里存在着极大的风险 – 缓存穿透。首先,我们从店铺查询开始,有一些热门的店铺往往会被大量用户访问,所以我们考虑将其存入 Redis,从而优化查询性能。
2026-09-19 08:41:11
324
原创 只属于你的私人助理?
免责声明,本教程仅做学习交流使用,不得移作非法用途。前段时间我了解到了一个开发个人 QQ Bot 助理的完整教程,跟随佬的步伐,也是成功搭建了整条链路,那么在此,废话不多说,我们来看看这是怎么实现的吧~
2026-09-18 15:40:51
353
原创 3.3 黑马点评 -- token动态刷新
前面学习了缓存的三大经典问题以及其对应的解决办法,在开始动手实现其应对办法前,先来看看另一个问题:项目内的 token 存在 Redis 中并设置有 TTL,当时间一到,token 自动过期,用户还正在浏览的过程中就被提醒需要进行重新登录,这导致用户的体验非常不好,因此,需要来做点改变。
2026-09-17 16:39:16
235
原创 3.2 黑马点评 -- 缓存
现在有这样的一个场景,Redis 中原本缓存了一个热点的 key,大量的查询可以通过这个 key 去查询到对应的信息,但是很不巧的是,在某一瞬间,大量的请求发送到后端,后端去请求 Redis 时,发现在那一刻 Redis 中的 key 刚好过期了,程序只好去数据库中查询,然而请求数量非常庞大,这就瞬间将我们的数据库服务给打宕机了,服务就崩溃了。这就是缓存击穿。
2026-09-16 19:16:56
517
原创 2. Java中操作Redis
学习了Redis基础,我们已经获得了巨大的进步,尽管只是从0 - 1的的进步。接着,作为Java开发者,我们当然要继续学习如何在Java中操作Redis。
2026-09-15 12:35:40
417
原创 WenQu -- 向量化
说了这么多,也许还并不了解向量化是什么意思,我们先来聊聊什么是文本的向量化,首先,我们需要知道对于纯文本来说,作为人类的我们可以在我们熟悉的语言里快速了解文本的内容,并且根据语境了解文本的含义,而对于计算机来说,这些文本是计算机所不能理解的,因此我们就需要将其进行数学化,我们采取的方式就是使用一些经过特殊训练的大模型为我们进行操作,将我们传入的文本以数学的方式进行转化,转为一些特殊的字符和数字,这就是向量化。
2026-08-31 16:57:21
349
原创 WenQu -- 异步处理
前面我们进行了文件处理的工作,我们实现了文档的解析,分块,上传服务,理论上功能已经实现比较完整了,接着我们会发现程序中存在的另一个问题:在我们进行文件上传过程中,我们程序的进程被阻塞了!这是因为文件的上传解析分块工作并不能马上完成,对于较大的文档我们的处理时间要比原有的更长,因此,这将会导致我们的体验感不佳,我们需要想办法进行处理,使它能够在处理文档的同时保证我们的其他操作不受影响,这就是我们今天要做的事情 – 异步处理。
2026-08-30 10:59:16
406
原创 WenQu -- 文本解析工具
我们在上传文本过程中,我们要将本地文件进行传输,最终存储到数据库中,我们有什么方法?单纯使用二进制去实现文本解析?那显然不太行,文件的格式有很多种,比如 docx,md,pdf,ppt,txt 等。我们这一节就来了解一下文件解析的方法。
2026-08-29 19:35:01
415
原创 WenQu -- 分块
*** 切分器抽象接口*//*** 将文本切分为多个分块* @param text 待切分的文本* @param chunkSize 每个分块的目标大小(字符数)* @param overlap 相邻分块的重叠字符数* @return 切分后的文本块列表*/本文实现了基于段落和句子的二级分块策略,相比简单的固定大小分块,能够更好地保持语义完整性。利用段落和句子的自然边界进行切分通过overlap保持上下文连贯对异常情况进行兜底处理后续优化方向。
2026-08-28 15:37:36
319
原创 WenQu -- 文件上传
我们已经完成了的是 Spring Security 登陆链路的认证,接着,我们要继续开发文件上传业务功能的开发。对于第一版设计,我们选择使用最简单的二进制数据入库的方式进行开发,随着后续的需求增加,我们再进行迭代。其他的,我们就按照三层架构来慢慢了解。
2026-08-25 13:04:13
308
原创 WenQu -- Spring Security
本文记录了使用Spring Security来进行登陆认证的简单流程,记录了开发过程中所实现的流程与思考,更有值得注意的点子所在。
2026-08-19 14:19:05
355
原创 苍穹外卖项目指北:公共字段的自动填充(AOP)
文章摘要 本文介绍了利用AOP(面向切面编程)实现公共字段自动填充的技术方案。通过对比OOP和AOP的编程思想,详细讲解了AOP的工作流程、五种通知类型(前置、后置、环绕、返回后、异常后)及其代码实现方式。针对苍穹外卖项目中的员工管理模块,提出通过自定义注解(@AutoFill)标识数据库操作类型(INSERT/UPDATE),并配合切面类实现创建时间、修改时间等公共字段的自动填充。该方案能在不修改原有业务代码的前提下增强功能,有效减少重复代码,提升开发效率和代码可维护性。
2026-07-13 13:27:05
408
原创 苍穹外卖项目指北:员工管理
本文介绍了苍穹外卖系统中员工管理业务的关键技术实现。首先通过ThreadLocal存储当前操作用户ID,避免参数传递的耦合性。系统采用标准三层架构(Controller、Service、Mapper)实现业务分层。分页查询使用PageHelper插件替代原生SQL的LIMIT,简化了分页逻辑。具体实现中,拦截器将用户ID存入ThreadLocal,Service层调用PageHelper.startPage()自动分页,Mapper层无需手动处理分页参数。这些设计提高了代码的可维护性和开发效率。
2026-07-12 17:31:19
334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅