Java之品优购课程讲义_day10(3)

缓存品×××和规格数据
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 ,运行运营商管理后台,打开商品分类和模板管理页,即可将数据放入缓存中。

转载于:https://blog.51cto.com/13517854/2177142

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值