电商商品详情页设计

聊聊电商商品详情页面吧
对于商品详情页我想只要看过淘宝的都不会陌生,业务场景就不介绍了;

第一版

客户端上送商品ID,根据商品ID去数据库查询需要展示的数据返回前端;
这么做也没错,也能实现对应功能;但压测结果灰常不理想
缺点很明显,数据库压力过大等问题;

 public PmsProductParam getProductInfo1(Long id) {
   
        PmsProductParam productInfo = portalProductDao.getProductInfo(id);
        if (null == productInfo) {
   
            return null;
        }
        FlashPromotionParam promotion = flashPromotionProductDao.getFlashPromotion(id);
        if (!ObjectUtils.isEmpty(promotion)) {
   
         //TODO 业务逻辑
        }
        return productInfo;
    }

第二版

第一版的缺点是数据库大压力过大,那怎么减少数据压力呢?嗯…redis,加缓存层搞定该问题;

大概流程就是
请求进来先去redis判断商品数据是否存在,如果redis能获取对应数据直接返回;如果redis获取不到该数据,去数据库查询将获取的数据存redis返回;
看上去这个方案灰常完美?代码走起…

 public PmsProductParam getProductInfo2(Long id) {
   
        PmsProductParam productInfo = null;
        //从缓存Redis里找
        productInfo = redisOpsUtil.get(RedisKeyPrefixConst.PRODUCT_DETAIL_CACHE + id, PmsProductParam.class);
        if (null != productInfo) {
   
            return productInfo;
        }
        productInfo = portalProductDao.getProductInfo(id);
        System.out.println("我被执行了");
        if (null == productInfo) {
   
            log.warn("没有查询到商
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值