- 博客(77)
- 资源 (5)
- 收藏
- 关注
原创 ldl-DeserializationViewer一款强大的序列化数据可视化工具
ldl-DeserializationViewer是一款Java序列化数据可视化工具,可将二进制序列化数据直接转换为可读JSON格式,无需原始DTO类。该工具解决了生产环境中缓存数据难以查看、调试困难等痛点问题,支持Web和命令行双模式运行,采用Javassist和ASM动态生成字节码技术。通过简单配置即可连接不同环境的Redis实例,提供用户友好的Swagger UI界面和脚本化操作能力,适合开发和运维人员快速排查缓存相关问题。
2025-06-26 22:28:23
686
原创 easy-caffeine一个简洁灵活易用基于caffeine的本地缓存框架
asy-Caffeine是一个基于Caffeine的轻量级本地缓存框架,旨在解决原生Caffeine的局限性并满足业务需求。它提供了统一API、内存权重淘汰机制、单条TTL设置、可配置化管理等功能,支持通过JSON配置热更新和灵活扩展。使用简单,只需引入依赖即可快速上手,适合作为Redis等分布式缓存的轻量替代方案。项目采用模块化设计,核心包含LocalCacheStore、LocalCacheApi等组件,未来计划集成监控指标和Spring Boot Starter支持。
2025-06-26 00:01:38
987
原创 DeserializationViewer使用说明
传统序列化数据(jdk序列化,protbuf等协议) ,存储在缓存(redis,文件等)中无法直接解析,想要获取明文数据必须依赖原始DTO,并且必须实现序列化接口Serilizable,且serilizationUID必须相同,否则直接报异常。如果不同的序列化数据要实现转换,没有办法做到通用性。这大大提升了线上数据问题排查,跨系统接口对接的难度,而原生java没有提供相应的解决办法,所以需要用新的工具来解决。
2025-06-24 22:00:52
747
原创 DeserializationViewer使用说明
该工具是用来查询redis存储的值和序列化的数据,支持根据不同环境动态配置或输入ip端口的方式,不需依赖序列化dto的jar包,支持redis设置密码的查询和单机或集群方式查询,项目支持springboot打包,如果是不支持springboot的环境可以用assembly方式打包成控台使用。
2025-06-19 22:15:36
974
原创 SynchronousQueueworkQueue.offer() 和 poll() 方法的超时控制及线程池的讨论
workQueue.offer() 和 poll() 方法的超时控制讨论
2024-11-12 11:31:05
372
转载 【Java 并发编程】线程池机制 ( 线程池执行任务细节分析 | 线程池执行 execute 源码分析 | 先创建核心线程 | 再放入阻塞队列 | 最后创建非核心线程 )
【Java 并发编程】线程池机制 ( 线程池执行任务细节分析 | 线程池执行 execute 源码分析 | 先创建核心线程 | 再放入阻塞队列 | 最后创建非核心线程 )
2024-11-12 10:33:03
59
原创 ScheduledThreadPoolExecutor 定制化线程池任务调度底层原理
ScheduledThreadPoolExecutor定制化线程池任务调度及起底层原理
2024-11-11 11:47:31
735
原创 runnable和callable区别和底层原理
虽然 `Callable` 不直接实现 `Runnable`,但是它们被设计为构建在统一的执行机制上,因此在实际执行过程中常常通过某种适配器(如 `FutureTask`)来间接地使用 `Runnable` 的执行模型。- **FutureTask** 是一种实现了 `Runnable` 和 `Future` 接口的类,允许你将 `Callable` 转换成一个 `Runnable` 对象,以便它可以被线程执行,并提供与 `Future` 相同的特性来处理结果。适用于不需要返回值或处理异常的简单任务。
2024-11-08 01:04:39
402
原创 如果没有 Telnet 客户端,你可以使用其他工具来检查远程主机的端口状态
如果没有 Telnet 客户端,你可以使用其他工具来检查远程主机的端口状态
2024-11-04 14:39:42
1128
原创 org.apache.http.impl.client.CloseableHttpClient的时候如果发生异常
org.apache.http.impl.client.CloseableHttpClient的时候如果发生异常
2024-10-20 03:51:32
1170
原创 ChatGPT从小白到大神进阶之路:让GPT格式化输出
GPT 是一种大型语言模型,可以生成文本、翻译语言、编写不同类型的创意内容,并以信息丰富的方式回答您的问题。它还可以格式化输出,这意味着您可以指定输出的内容和格式。要格式化 GPT 的输出,您需要在问题或提示的末尾添加一个格式化选项。例如,如果您想让 GPT 以表格格式列出世界上销量最高的 10 本书,您可以输入以下内容:请告诉我世界上销量最高的 10 本书,以表格格式输出。GPT 将以表格格式列出书名、作者和销量。
2023-09-17 22:51:29
3783
原创 常用的缓存工具有ehcache、memcache和redis,这里介绍spring中ehcache的配置。
常用的缓存工具有ehcache、memcache和redis,这里介绍spring中ehcache的配置。
2023-07-11 13:28:13
992
原创 Error:java: Compilation failed: internal java compiler error
Error:java: Compilation failed: internal java compiler error
2023-02-08 23:45:04
233
转载 Thread.sleep、Object.wait、LockSupport.park 区别
Thread.sleep、Object.wait、LockSupport.park 区别
2022-12-17 15:38:04
455
原创 IDEA 报红线,Unable to import maven project: See logs for details具体解决方法
IDEA Unable to import maven project: See logs for details具体解决方法
2022-12-16 18:17:04
758
转载 集合转数组,必须使用集合的toArray(T[] array),长度为0的空数组的原因
集合转数组,必须使用集合的toArray(T[] array),长度为0的空数组的原因
2022-12-16 17:22:35
561
C++实现的射击游戏
2013-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人