日记50
今天给用户管理模块加了Redis缓存,解决频繁查询数据库导致的性能问题。首先在pom.xml引入 spring-boot-starter-data-redis 依赖,然后在application.yml配置Redis的主机地址、端口和超时时间。
编写Redis工具类,封装 set 、 get 、 delete 方法,利用 RedisTemplate 操作缓存,同时为了避免序列化问题,将 RedisTemplate 的key和value序列化方式改为 StringRedisSerializer 。
改造UserController的查询接口:查询用户时先从Redis中获取数据,若存在则直接返回;若不存在则查询数据库,再将结果存入Redis并设置10分钟过期时间。更新和删除用户时,同步删除对应的缓存数据,防止数据不一致。
测试时,第一次查询接口耗时80ms,第二次直接从缓存获取仅耗时5ms,效率提升明显。踩坑点:忘记在更新方法中删除缓存,导致修改用户信息后查询结果还是旧数据,补上缓存删除逻辑后解决。
浙公网安备 33010602011771号