为什么要使用Redis呢?
我们通常使用Redis存放一些经常被 (查看) / 使用 的数据,借其缓存机制来减少我们访问数据库的次数从而达到提高项目性能的目的、并给予用户更好的体验。
实现方式:
在项目启动时就将所有联动数据存入Redis中。再使用时就无需频繁访问数据库、只需从缓存中取出对应数据即可。
效果如图:
控制层(Controller)主要代码如下:
@RequestMapping("getCity")
@ResponseBody
public List<City> getCity(Integer pid) { // pid接收前台ajax传来的值
// 若pid为null则结束方法;
if (pid == null)
return null;
// 使用注入的redisTemplate判断redis中是否包含该key
Boolean aBoolean = redisTemplate.hasKey("city" + pid);
ListOperations forList = redisTemplate.opsForList();
// 如果不包含则代表第一次进入该方法,redis缓存中还没有存入城市联动信息
if (!aBoolean) {
// 查出所有信息,存入redis,
List<City> list = demandService.cityAll();
// 循环遍历
for (City city : list) {
// 以pid为标记存入redis缓存,key为共同的pid,value为pid对应查出的集合
forList.rightPush("city" + city.getPid(), city);
}
}
// 遍历出对应pid的城市集合并返回
List<City> cityall = forList.range("city" + pid, 0, -1);
return cityall;
}
页面代码:
对应前台ajax代码如下:
本文不对前台联动代码做过多讲解,若想深入了解前台代码逻辑的朋友请查看:
如此一来便实现了在初始化页面时即加载所有联动数据,无需频繁访问数据库。提高了项目性能。
(关于修改回显,也请参考以上链接文章,换汤不换药~)
祝 玩得开心 ~
如有错误,欢迎指正
Thanks