From c89bfd667a726b806a3ad40e6d46528ac0d045aa Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 18 Nov 2025 17:02:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=8D=E7=A9=B9=E5=A4=96=E5=8D=96--redis?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=8F=9C=E5=93=81=E5=8A=9F=E8=83=BD=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sky/controller/user/DishController.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/sky-server/src/main/java/com/sky/controller/user/DishController.java b/sky-server/src/main/java/com/sky/controller/user/DishController.java index 53782aa..f28fd5b 100644 --- a/sky-server/src/main/java/com/sky/controller/user/DishController.java +++ b/sky-server/src/main/java/com/sky/controller/user/DishController.java @@ -9,6 +9,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -22,6 +23,9 @@ public class DishController { @Autowired private DishService dishService; + @Autowired + private RedisTemplate redisTemplate; + /** * 根据分类id查询菜品 * @@ -31,11 +35,23 @@ public class DishController { @GetMapping("/list") @ApiOperation("根据分类id查询菜品") public Result> list(Long categoryId) { + //这里采用redis中string数据类型进行缓存数据:key:value (dish_分类id : 菜品集合的字符串) + //1.构造redis中的key,规则:dish_分类id + String key = "dish_"+categoryId; + //2.查询redis中是否存在菜品数据, + List list = (List) redisTemplate.opsForValue().get(key); + if (list != null && list.size() > 0) { + //3.如果存在缓存,直接返回,无需查询数据库 + return Result.success(list); + } + //4.如果不存在缓存,查询数据库,将查询到的数据保存到redis中 + Dish dish = new Dish(); dish.setCategoryId(categoryId); dish.setStatus(StatusConstant.ENABLE);//查询起售中的菜品 - - List list = dishService.listWithFlavor(dish); + list = dishService.listWithFlavor(dish); + //5.缓存到reids中 + redisTemplate.opsForValue().set(key,list); return Result.success(list); }