目录
1 前言
2 实现方法
2.1 查询数据时
2.2 修改数据
1 前言
对于一些不常改变,但又经常查询的数据,我们可以使用Redis缓存,来缓解数据库的压力,其中的逻辑如下:
2 实现方法
2.1 查询数据时
一般在控制类查询方法中,添加上述逻辑代码即可达到上述功能要求,如下:
public class TestController {//Redis工具类@Autowiredprivate RedisTemplate redisTemplate;public Result<List<TestVO>> list(Long id) {//构造Redis中的key,xxx_idString 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);//其它...
}