redis的清除缓存问题

假如我不清除数据话,原来价格是20元,我在后台进行更改好,它的价格是没变的。
数据库是改变了的,但是移动端的数据却没改变过来。

因为我们的逻辑是这样的如果redis中存在菜品数据,则直接返回,没有才查询数据库。
而我们的redis中已经缓存了之前的菜品信息,它并不能监听到数据已经发生了改变,就直接返回了。

所以我们在进行增删改的时候,要进行清理缓存的逻辑。
 
 
 
有两种方法清除缓存,一个是清除所有的菜品缓存,一个是根据指定的菜品清除缓存。
第一种清除所有的菜品缓存
拿到所有dish_开头的键

删除键
    //清除所有的菜品缓存
        Set dish = redisTemplate.keys("dish_");
        redisTemplate.delete(dish);
第二种清理某个分类下面的菜品缓存数据
//清除某个分类下面的菜品缓存数据
        String key="dish_"+dishDto.getCategoryId()+"_1";
        redisTemplate.delete(key);

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号