A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

缓存品牌和规格数据
4.1 需求分析
将商品分类数据、品牌数据、和规格数据都放入 Redis 存储。
(1)当用户进入运营商后台的商品分类页面时,将商品分类数据放入缓存(Hash)。以分    类名称作为 key ,以模板 ID 作为值
(2)当用户进入运营商后台的模板管理页面时,分别将品牌数据和规格数据放入缓存
(Hash)。以模板 ID 作为 key,以品牌列表和规格列表作为值。
4.2 缓存商品分类数据
将商品分类表存入缓存        pinyougou-sellergoods-service 工程需要引入 pinyougou-common 工程依赖。
修改 pinyougou-sellergoods-service 的 ItemCatServiceImpl.java,添加 redisTemplate
[AppleScript] 纯文本查看 复制代码
@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
[AppleScript] 纯文本查看 复制代码
@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) 时调用此方法
[AppleScript] 纯文本查看 复制代码
public  PageResult  findPage(TbTypeTemplate  typeTemplate,  int  pageNum,  int  pageSize)  {

......

saveToRedis();//存入数据到缓存

return  new  PageResult(page.getTotal(),  page.getResult());

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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马