目录
1 前言
2 实现方法
2.1 查询数据时
2.2 修改数据
1 前言
对于一些不常改变,但又经常查询的数据,我们可以使用Redis缓存,来缓解数据库的压力,其中的逻辑如下:
2 实现方法
2.1 查询数据时
一般在控制类查询方法中,添加上述逻辑代码即可达到上述功能要求,如下:
public class TestController {
//Redis工具类
@Autowired
private RedisTemplate redisTemplate;
public Result<List<TestVO>> list(Long id) {
//构造Redis中的key,xxx_id
String key = "xxx_" + categoryid;
//查询Redis中是否存在菜品数据
List<TestVO> list = (List<TestVO>)redisTemplate.opsForValue().get(key);
//如果存在缓存就返回
if (list != null && list.size() > 0) {
return Result.success(list);
}
//否则查询数据库
//查询数据库的代码...
//添加缓存
redisTemplate.opsForValue().set(key, list);
return Result.success(list);
}
}
2.2 修改数据
这里可以根据需求选择,清空相关数据或者只删除某个键值对。比如说,当我们删除某个数据时,就可以只删除某个键值对,如下:
//单个删除
public Result delete(Long id) {
//批量删除数据库相关代码...
//清空缓存,*是匹配所以test_为开头的键
String key = "dish_" + id;
redisTemplate.delete(key);
//其它...
}
当我们修改某个数据或者批量删除时,情况就会稍微复杂些,偷懒点就会选择清空相关数据,如下:
//批量删除
public Result delete(@RequestParam List<Long> ids) {
//批量删除数据库相关代码...
//清空缓存,*是匹配所以test_为开头的键
Set keys = redisTemplate.keys("test_*");
redisTemplate.delete(keys);
//其它...
}