RedisTemplate常用方法总结
本文总结了RedisTemplate的常用方法,旨在帮助开发者将其封装为业务工具类(如RedisUtil)。内容涵盖了Redis五种主要数据类型(String、Hash、List、Set、zSet)的核心操作,包括键值存取、删除、过期设置及各类数据结构的特定API,为日常开发中的缓存操作提供了实用参考。
标签:数据库
本文总结了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键弱引用回收而值未回收导致的内存泄漏。适用于线程内数据传递与事务管理场景。
Index 索引 本文总结了MySQL索引失效的常见情况:单个索引中,使用!=、类型不一致、函数、运算符、OR连接不同字段、模糊前缀%、NOT IN/EXISTS、IS NULL会导致失效;复合索引遵循最左匹配原则,最左字段使用!=会致整个失效。建议合理建索引,保持字段类型一致,避免NULL值。
Random 随机 文章介绍了MySQL中生成指定位数随机数的方法,使用RAND()函数结合CEILING或FLOOR取整,通过公式如CEILING(RAND()*900+100)生成随机数,并提及批量更新数据的应用,但指出可能存在重复问题。
Transaction 事务 处理系统大事务问题的方法包括:少用@Transactional注解,改用编程式事务;将查询操作移出事务;避免事务中远程调用;分页处理大量数据;识别非事务操作;使用异步处理。这些方法能有效减少事务粒度,提升性能。
Deduplication 去重 文章介绍了题库系统中查询和删除重复试题的SQL方法,使用GROUP BY和HAVING子句识别重复数据,通过子查询避免死锁,并提供了基于单个或多个字段的操作示例及优化建议。