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

19.缓存的认识和基本使用

缓存介绍

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

 数据库的缓存就是建立索引。

缓存的作用

1.降低后端负载。

2.提高读写效率,降低响应时间。

缓存的问题

1.保证数据的一致性。

2.增加代码维护成本。解决一些常见的缓存问题。

3.增加运维成本,会搭建一些缓存的集群部署。

String类型

 @Autowiredprivate StringRedisTemplate stringRedisTemplate;@Overridepublic Result queryById(Long id) {String key = RedisConstants.CACHE_SHOP_KEY + id;//从redis中查询商铺缓存String shopJsonStr = stringRedisTemplate.opsForValue().get(key);//redis中有数据直接返回if(StrUtil.isNotBlank(shopJsonStr)) {Shop shop = JSONUtil.toBean(shopJsonStr, Shop.class);return Result.ok(shop);}//redis中没有数据,继续查询数据库Shop shop = getById(id);if(ObjectUtil.isNull(shop)) {//数据库没有查询到数据,返回错误return Result.fail("店铺不存在");}//数据库中查询到数据,存入redis,再返回数据stringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(shop));return Result.ok(shop);}

List类型

@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Overridepublic Result queryTypeList() {String key = "cache:shopType:all";List<String> shopTypeList = stringRedisTemplate.opsForList().range(key, 0, -1);if(CollectionUtil.isNotEmpty(shopTypeList)) {List<ShopType> shopTypes = new ArrayList<>();shopTypeList.stream().forEach(e -> {ShopType shopType = JSONUtil.toBean(e, ShopType.class);shopTypes.add(shopType);});return Result.ok(shopTypes);}List<ShopType> shopTypes = query().orderByAsc("sort").list();if(CollectionUtil.isEmpty(shopTypes)) {return Result.ok("没有找到店铺类型");}shopTypes.stream().forEach(e -> shopTypeList.add(JSONUtil.toJsonStr(e)));stringRedisTemplate.opsForList().rightPushAll(key, shopTypeList);return Result.ok(shopTypes);}


http://www.mrgr.cn/news/7195.html

相关文章:

  • AMEYA360:芯讯通5G RedCap+智慧电力,SIM8230“轻”装上阵
  • 分析Facebook在区块链技术中的应用与前景
  • 谷歌chrome浏览器显示“版本太旧”又无法更新情况下,如何关闭“Chrome版本太旧”提示,包括直接启动Google浏览器,或者通过其他应用启动
  • 解决使用matplotlib不显示中文的问题
  • Android系统架构
  • 神经网络动画讲解 - 神经网络工作流程
  • F5G全光网实践
  • 机器学习:逻辑回归实现下采样和过采样
  • Spring 事务和事务传播机制
  • 做谷歌seo如何创建良好的用户体验?
  • 马斯克脑机接口让瘫痪者5分钟掌握鼠标控制
  • 【重修Java的数据库连接】JDBC介绍
  • 小米14的射频芯片高通SDR753全景图
  • Python办公自动化smtplib实现自动发送邮件
  • AI 未来两年:史无前例的变革与挑战
  • 论文阅读:scMGCA----模型方法
  • 老师们是如何发布分班查询的呢?
  • 解密《黑神话:悟空》脚本
  • 【Python机器学习】NLP分词——利用分词器构建词汇表(一)
  • 【Qt开发】建立自己的Qt基本类、函数库封装 包括图表、多线程、串口等