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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】品优购电商系统开发第 10 章 三

4.缓存品牌和规格数据
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("更新缓存:商品分类表");
return itemCatMapper.selectByExample(example1);
}

4.3 缓存品牌和规格列表数据
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.4 加载缓存数据
启动 redis ,运行运营商管理后台,打开商品分类和模板管理页,即可将数据放入缓存中。


1 个回复

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