缓存品×××和规格数据 4.1 需求分析 将商品分类数据、品×××数据、和规格数据都放入 Redis 存储。 (1)当用户进入运营商后台的商品分类页面时,将商品分类数据放入缓存(Hash)。以分 类名称作为 key ,以模板 ID 作为值 (2)当用户进入运营商后台的模板管理页面时,分别将品×××数据和规格数据放入缓存 (Hash)。以模板 ID 作为 key,以品×××列表和规格列表作为值。 4.2 缓存商品分类数据 将商品分类表存入缓存 pinyougou-sellergoods-service 工程需要引入 pinyougou-common 工程依赖。 修改 pinyougou-sellergoods-service 的 ItemCatServiceImpl.java,添加 redisTemplate

@Autowired
 
 
private  RedisTemplate  redisTemplate;
 
 
 
 
/**
 
* 根据上级 ID 查询列表
 
*/
@Override
 
 
public  List<TbItemCat>  findByParentId(Long  parentId)  { TbItemCatExample  example1=new  TbItemCatExample(); Criteria  criteria1  =  example1.createCriteria(); criteria1.andParentIdEqualTo(parentId);
//每次执行查询的时候,一次性读取缓存进行存储 (因为每次增删改都要执行此方法)
 
List<TbItemCat>  list  =  findAll();
for(TbItemCat  itemCat:list){ redisTemplate.boundHashOps("itemCat").put(itemCat.getName(),
itemCat.getTypeId());
 
 
}
 
System.out.println("更新缓存:商品分类表");

4.1 缓存品×××和规格列表数据 (1)修改 pinyougou-sellergoods-service 的 TypeTemplateServiceImpl.java

@Autowired
 
 
private  RedisTemplate  redisTemplate;
 
 
 
 
/**
 
* 将数据存入缓存
 
*/
 
 
private  void  saveToRedis(){
//获取模板数据
 
List<TbTypeTemplate>  typeTemplateList  =  findAll();
 
//循环模板
 
for(TbTypeTemplate  typeTemplate  :typeTemplateList){
 
//存储品×××列表
 
List<Map>  brandList  =  JSON.parseArray(typeTemplate.getBrandIds(),
Map.class);
 
 
redisTemplate.boundHashOps("brandList").put(typeTemplate.getId(),
brandList);
 
//存储规格列表
 
List<Map>  specList  =  findSpecList(typeTemplate.getId());//根据模板 ID 查询
规格列表
 
redisTemplate.boundHashOps("specList").put(typeTemplate.getId(),
specList);
 
 
}
 
}

(2)在查询分页方法(findPage) 时调用此方法

public  PageResult  findPage(TbTypeTemplate  typeTemplate,  int  pageNum,  int  pageSize)  {
 
......
 
saveToRedis();//存入数据到缓存
 
return  new  PageResult(page.getTotal(),  page.getResult());
 
}

这样在增删改后会自动调用该方法. 4.1 加载缓存数据 启动 redis ,运行运营商管理后台,打开商品分类和模板管理页,即可将数据放入缓存中。