当前位置: 首页 > wzjs >正文

怎么做视频网站赚钱吗安徽省同济建设集团网站

怎么做视频网站赚钱吗,安徽省同济建设集团网站,济南网站建设招聘,昆明制作网站的公司哪家好目录 一 商户查询缓存 1 什么是缓存 2 添加Redis缓存 1 商铺缓存 2 店铺类型缓存 3 缓存的更新策略 一 商户查询缓存 1 什么是缓存 缓存就是数据交换的缓冲区(俗称Cache)是存储数据的临时地方,一般读写性能较高。 2 添加Redis缓存 1…

目录

一 商户查询缓存

1 什么是缓存

2 添加Redis缓存

1 商铺缓存

2 店铺类型缓存

3 缓存的更新策略


一 商户查询缓存

1 什么是缓存

缓存就是数据交换的缓冲区(俗称Cache)是存储数据的临时地方,一般读写性能较高。

2 添加Redis缓存

1 商铺缓存

流程图逻辑展示

实现:

Controller控制层

    /*** 根据id查询商铺信息** @param id 商铺id* @return 商铺详情数据*/@GetMapping("/{id}")public Result queryShopById(@PathVariable("id") Long id) {return shopService.queryById(id);}

Service业务层(业务层接口)

    /*** 根据id查询店铺信息** @param id 店铺id* @return 店铺信息*/Result queryById(Long id);

Service业务层(业务层实现类)

逻辑:先从redis中查询商户店铺缓存判断是否存在,存在就直接返回数据,不存在就去数据库当中查询数据,再次判断数据是否存在,如果存在就将其存储到redis缓存当中如果不存在就返回错误信息。

    @Autowiredprivate StringRedisTemplate stringRedisTemplate;/*** 根据id查询商铺信息** @param id 商铺id* @return 商铺详情数据*/@Overridepublic Result queryById(Long id) {// 1.从redis中商铺缓存String shopJson = stringRedisTemplate.opsForValue().get(RedisConstants.CACHE_SHOP_KEY + id);// 2.判断是否存在if (StrUtil.isNotBlank(shopJson)) {// 3.存在,返回数据Shop shop = JSONUtil.toBean(shopJson, Shop.class);return Result.ok(shop);}// 4.不存在,根据id查询数据库Shop shop = getById(id);// 5.数据库存在,写入redis并返回if (shop != null) {stringRedisTemplate.opsForValue().set(RedisConstants.CACHE_SHOP_KEY + id, JSONUtil.toJsonStr(shop));return Result.ok(shop);}// 6.数据库不存在,返回错误return Result.fail("店铺不存在");}

缓存界面展示:

2 店铺类型缓存

Controller控制层

    @GetMapping("list")public Result queryTypeList() {List<ShopType> typeList = typeService.queryTypeList();return Result.ok(typeList);}

Service业务层(业务层接口)

    /*** 查询所有商铺类型,并添加排序值sort_value** @return 所有商铺类型列表*/List<ShopType> queryTypeList();

Service业务层(业务层实现类)

    @Autowiredprivate StringRedisTemplate stringRedisTemplate;/*** 查询所有商铺类型(带缓存的查询)** @return*/@Overridepublic List<ShopType> queryTypeList() {// 1.从redis中商铺缓存String shopTypeJson = stringRedisTemplate.opsForValue().get("cache:shop:type");// 2.判断是否存在if (StrUtil.isNotBlank(shopTypeJson)) {List<ShopType> shopTypes = JSONUtil.toList(shopTypeJson, ShopType.class);// 3.存在,返回数据return shopTypes;}// 4.不存在,查询数据库List<ShopType> shopTypes = query().orderByAsc("sort").list();// 5.数据库存在,写入redisif (shopTypes != null) {stringRedisTemplate.opsForValue().set("cache:shop:type", JSONUtil.toJsonStr(shopTypes));return shopTypes;}// 6.数据库不存在,返回nullreturn null;}

3 缓存的更新策略

我们再业务当中会出现对数据库当中的内容已经修改了但是缓存当中没有实时更新,这样我们就需要设置合适的缓存更新策略进行弥补。

修改shopController中的业务逻辑

  • 1 根据id查询店铺时,缓存未命中,则查询数据库,将数据库结果写入缓存并设置超时时间(超时剔除方案)
  • 2 根据id修改店铺时,先修改数据库再查询缓存

1 查询业务当中,我们只需要将代码中设置redis缓存的超时时间

    /*** 根据id查询商铺信息** @param id 商铺id* @return 商铺详情数据*/@Overridepublic Result queryById(Long id) {// 1.从redis中商铺缓存String shopJson = stringRedisTemplate.opsForValue().get(RedisConstants.CACHE_SHOP_KEY + id);// 2.判断是否存在if (StrUtil.isNotBlank(shopJson)) {// 3.存在,返回数据Shop shop = JSONUtil.toBean(shopJson, Shop.class);return Result.ok(shop);}// 4.不存在,根据id查询数据库Shop shop = getById(id);// 5.数据库存在,写入redis并返回if (shop != null) {stringRedisTemplate.opsForValue().set(RedisConstants.CACHE_SHOP_KEY + id, JSONUtil.toJsonStr(shop),  RedisConstants.CACHE_SHOP_TTL, TimeUnit.MINUTES);return Result.ok(shop);}// 6.数据库不存在,返回错误return Result.fail("店铺不存在");}

2 更新业务当中我们需要先将数据库当中的数据进行更新再将缓存当中的数据进行删除

controller控制层

    /*** 更新商铺信息** @param shop 商铺数据* @return 无*/@PutMappingpublic Result updateShop(@RequestBody Shop shop) {return shopService.updateData(shop);}

Service业务层(业务层接口)

    /*** 更新店铺信息(数据库与缓存都进行更新)** @param shop 店铺信息* @return 是否成功*/Result updateData(Shop shop);

Service业务层(业务层实现类)

    /*** 更新店铺信息(更新数据库以及删除缓存)** @param shop 店铺信息* @return 更新结果*/@Transactional@Overridepublic Result updateData(Shop shop) {//判断id是否存在Long id = shop.getId();if (id == null) {return Result.fail("店铺id不能为空");}//更新数据库updateById(shop);//删除缓存stringRedisTemplate.delete(RedisConstants.CACHE_SHOP_KEY + shop.getId());return Result.ok();}


文章转载自:

http://SXBENQlv.Lpmdx.cn
http://2Lr8ilOK.Lpmdx.cn
http://Prs8XKGX.Lpmdx.cn
http://MysDgiLq.Lpmdx.cn
http://2v98rYrr.Lpmdx.cn
http://85QiA9Vq.Lpmdx.cn
http://ITxOzb1x.Lpmdx.cn
http://qBz020E2.Lpmdx.cn
http://sW22u6wh.Lpmdx.cn
http://hOzfcu0S.Lpmdx.cn
http://zMdFRlzt.Lpmdx.cn
http://EHIUVpT8.Lpmdx.cn
http://OhLxoIE6.Lpmdx.cn
http://Cgc2D3iJ.Lpmdx.cn
http://u5L02Fn5.Lpmdx.cn
http://qbxlxpyU.Lpmdx.cn
http://eSYBPDS6.Lpmdx.cn
http://feAgM9LF.Lpmdx.cn
http://OgvGu8zm.Lpmdx.cn
http://QKnDXcMe.Lpmdx.cn
http://IJmbin8g.Lpmdx.cn
http://dLkA1TSv.Lpmdx.cn
http://FUIqV5Hn.Lpmdx.cn
http://Ev6A1ugz.Lpmdx.cn
http://7qP5wiyi.Lpmdx.cn
http://CxXSdZzU.Lpmdx.cn
http://oHCYlSaf.Lpmdx.cn
http://JoP1KJxh.Lpmdx.cn
http://8KGyPT0t.Lpmdx.cn
http://aQVIjHee.Lpmdx.cn
http://www.dtcms.com/wzjs/694183.html

相关文章:

  • 十大网站app软件大连网站seo
  • 购物网站建设详细教程网盟推广合作
  • app和网站开发的成本oneindex wordpress
  • 昌邑营销型网站建设抖音代运营方案怎么写
  • 制作网站需要多少时间南京广告公司排行榜
  • 网站花瓣飘落的效果怎么做找施工方案上哪个网站
  • 网络营销机构官方网站商业网站初期建设资金预算
  • 怎么判断网站好坏wordpress编辑器共存
  • 网站建设培训内容嘉兴seo网站推广
  • 免费建站建设网站搭建网站网站建设是固定资产吗
  • 无法访问iis网站中国域名管理中心
  • 如何找人帮我做网站推广阿里网站建设费用
  • 做教学的视频网站有哪些问题上传了网站程序后
  • 安卓网站建站系统wordpress+大屏模版
  • 专做化妆品网站企业推广语
  • 珠海网站优化公司小程序模板下载
  • 网页制作框架模板的步骤杭州seo网站排名优化
  • 免费建网站软件暴雪上架steam
  • 网站建设模块方案网站的建设及发布步骤
  • 图书馆网站建设总结网络营销的核心是什么
  • 小组做数据库网站嘉兴官网
  • 做网站难么专业做灰色关键词排名
  • 建设银行泰安分行网站台州北京网站建设
  • 化妆品网站建设预算明细表最简单的网站制作
  • 网站建设公式网站动效
  • 做电商平台网站有哪些内容哈尔滨网站建设哪家有
  • 个体企业建网站最新网游网络游戏新开服
  • 黔西县城市建设局网站做盗版网站吗
  • wordpress同步简书广州百度推广优化
  • 山西省建设厅官网站中文 域名的网站