Lock 锁 使用注解形式实现 Redis 分布式锁
本文介绍了一种基于Redis的分布式锁实现,通过AOP切面和注解驱动,确保耗时操作的并发安全。核心包括加锁、续时和释放锁机制,使用定时线程池定期延长锁过期时间,防止任务未完成时锁提前释放,并提供了完整的代码示例和测试验证。
按发布时间查看文章。
Lock 锁 本文介绍了一种基于Redis的分布式锁实现,通过AOP切面和注解驱动,确保耗时操作的并发安全。核心包括加锁、续时和释放锁机制,使用定时线程池定期延长锁过期时间,防止任务未完成时锁提前释放,并提供了完整的代码示例和测试验证。
本文总结了RedisTemplate的常用方法,旨在帮助开发者将其封装为业务工具类(如RedisUtil)。内容涵盖了Redis五种主要数据类型(String、Hash、List、Set、zSet)的核心操作,包括键值存取、删除、过期设置及各类数据结构的特定API,为日常开发中的缓存操作提供了实用参考。
缓存雪崩是大面积key同时失效,可通过加随机过期时间分散;缓存击穿是热点key突然失效,应加强代码审查与权限管理;缓存穿透是查询不存在数据,需做参数校验并用布隆过滤器拦截。同时需保证Redis高可用,并结合业务设计降级方案。
文章介绍题库系统处理重复试题的SQL方法:使用GROUP BY和HAVING识别重复数据;通过子查询删除多余项,保留一条;注意MySQL更新限制;提供单字段和多字段操作示例及优化建议。
ThreadLocal 线程 ThreadLocal是Java中提供线程局部变量的工具,可实现线程间的数据隔离。每个Thread内维护一个ThreadLocalMap,以ThreadLocal为键、局部变量为值。使用时需及时调用remove方法,避免因Entry键弱引用回收而值未回收导致的内存泄漏。适用于线程内数据传递与事务管理场景。
Leak 泄漏 核心服务内存溢出,分析发现是File.deleteOnExit()方法导致内存泄漏。该方法将临时文件路径存入LinkedHashSet,直到JVM关闭才删除,造成内存累积。建议改用File.delete()立即删除文件。
Java序列化将对象转换为字节序列,用于持久化或网络传输。实现Serializable接口使JVM自动处理序列化。显示指定serialVersionUID确保类修改后反序列化兼容,避免版本不一致错误。