使用Redis缓存实现三(n)级联动【一看就懂】

42 篇文章 0 订阅
9 篇文章 0 订阅

为什么要使用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代码如下:

本文不对前台联动代码做过多讲解,若想深入了解前台代码逻辑的朋友请查看:

最强三级联动 最简易三级联动 代码少就完事儿了 详解【一看就懂】_杨大仙-CSDN博客

如此一来便实现了在初始化页面时即加载所有联动数据,无需频繁访问数据库。提高了项目性能。

(关于修改回显,也请参考以上链接文章,换汤不换药~)

祝 玩得开心 ~


如有错误,欢迎指正

Thanks

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hah杨大仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值