谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用)

这篇具有很好参考价值的文章主要介绍了谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第166p-第p172的内容


缓存一致性问题解决

redisson使用lua脚本,所以的锁都保证了原子性
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
改之前的代码
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
锁的粒度越小越好
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

如11号商品和12号商品 用同一把锁,12的并发也会影响11
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

数据一致性

目前主要是两种模式: 双写和失效模式
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
使用Canal
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

使用Canal可以实现数据异构
如:它会分析每天用户的访问记录 和每天的商品信息的更新,然后通过某些算法进行分析计算,生成用户异构系统用户商品推荐表
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

SpringCache

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

两个方法(两个功能)
第一个方法 根据名称得到缓存
第二个方法 得到所有的缓存的名字
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
缓存如果是北京市,那缓存的名字就相当于北京市的各个区的名字
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

整合springCache

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

使用步骤

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
*谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

可以给多个缓存区放置
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

这里是jdk序列化后的结果 可以转成纯文本
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

自定义缓存

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

key记得加单引号否则spring会以为是表达式
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
这里的过期时间在配置文件里设置,是毫秒为单位的,切记 同一个过期时间,可能会导致redis雪崩

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
自己写一个组件配置类
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
@EnableConfigurationProperties(CacheProperties.class) 的这个注解就把这个CacheProperties组件放到容器中了啊

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

直接放到参数里

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

清除缓存

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

处理两个缓存
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
也可以直接删除这个分区的所有数据
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

最好去掉前缀 使用默认的前缀
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

原理和不足

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis

谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis
谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用),谷粒商城,缓存,java,spring boot,spring,redis文章来源地址https://www.toymoban.com/news/detail-844212.html


到了这里,关于谷粒商城实战(010 缓存-解决数据一致性问题以及SpringCache的使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 博客摘录「 Redis( 缓存篇 ==> 超详细的缓存介绍与数据一致性解决方案 &; 代码实现」

    Redis 旁路缓存 由于高并发原因,先更新数据库和先更新缓存策略都会因为延迟时间而导致数据不一致问题。 两种策略 先删除缓存,再更新数据库; 先更新数据库,再删除缓存。 因为缓存的写入通常要远远快于数据库的写入 ,所以先更新数据库再删缓存,删完缓存,下次访

    2024年02月15日
    浏览(29)
  • Spring Boot整合canal实现数据一致性解决方案解析-部署+实战

    🏷️ 个人主页 :牵着猫散步的鼠鼠  🏷️ 系列专栏 :Java全栈-专栏 🏷️ 个人学习笔记,若有缺误,欢迎评论区指正   1.前言 2.canal部署安装 3.Spring Boot整合canal 3.1数据库与缓存一致性问题概述 3.2 整合canel 4.总结 canal [kə\\\'næl]  ,译意为水道/管道/沟渠,主要用途是 基于

    2024年03月19日
    浏览(42)
  • Redis 原理缓存过期、一致性hash、雪崩、穿透、并发、布隆、缓存更新策略、缓存数据库一致性

    redis的过期策略可以通过配置文件进行配置 redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key。 1).每100ms从过期字典中 随机挑选20个,把其中过期的key删除; 2).如果过期的key占比超过1/4,重复步骤1 为了保证不会循环过度,导致卡顿,扫描时间上限

    2024年02月08日
    浏览(43)
  • 缓存数据一致性探究

    缓存是一种较低成本提升系统性能的方式,自它面世第一天起就备受广大开发者的喜爱。然而正如《人月神话》中的那句经典的“没有银弹”中所说,软件工程的设计没有银弹。 就像每一次发布上线修复问题的同时,也极易引入新的问题,自缓存诞生的第一天起, 缓存与数

    2024年02月16日
    浏览(28)
  • 游戏配置二级缓存一致性问题解决方案

    游戏服务器进程在启动的时候,一般会把所有策划配置数据加载到内存里,将主键以及对应的记录存放在一个HashMap容器里,这称为一级缓存。部分功能可能还需要缓存其他数据,这些称为二级缓存。举个例子,对于如下的玩家升级表记录 程序缓存level与ConfigPlayerLevel的对应关

    2024年02月22日
    浏览(29)
  • 浅谈缓存最终一致性的解决方案

    作者:clareguo,腾讯 CSIG 后台开发工程师 来源:腾讯技术工程open in new window 到底是更新缓存还是删除缓存? 到底是先更新数据库,再删除缓存,还是先删除缓存,再更新数据库? 对于互联网业务来说,传统的直接访问数据库方式,主要通过数据分片、一主多从等方式来扛住读

    2024年01月16日
    浏览(43)
  • 缓存一致性问题解决方案(超全超易懂)

    标准的操作方式就是查询数据库之前先查询缓存,如果缓存数据存在,则直接从缓存中返回,如果缓存数据不存在,再查询数据库,然后将数据存入redis。 缓存作用模型 在项目中我们经常这样用缓存来缓解数据库的压力: 缓存更新是redis为了节约内存而设计出来的一个东西,

    2023年04月12日
    浏览(33)
  • 缓存和数据库一致性

    项目的难点是如何保证缓存和数据库的一致性。无论我们是先更新数据库,后更新缓存还是先更新数据库,然后删除缓存,在并发场景之下,仍然会存在数据不一致的情况(也存在删除失败的情况,删除失败可以使用异步重试解决)。有一种解决方法是延迟双删的策略,先删

    2024年01月17日
    浏览(33)
  • 缓存和数据库一致性问题分析

    目录 1、数据不一致的原因 1.1 并发操作 1.2 非原子操作 1.3 数据库主从同步延迟 2、数据不一致的解决方案 2.1 并发操作 2.2 非原子操作 2.3 主从同步延迟 2.4 最终方案 3、不同场景下的特殊考虑 3.1 读多写少的场景 3.2 读少写多的场景 导致缓存和数据库数据不一致的原因有三个

    2024年02月14日
    浏览(33)
  • 如何保证缓存和数据库的数据一致性

    若数据库更新成功,删除缓存操作失败,则此后读到的都是缓存中过期的数据,造成不一致问题。 同删除缓存策略一样,若数据库更新成功缓存更新失败则会造成数据不一致问题。 若缓存更新成功数据库更新失败, 则此后读到的都是未持久化的数据。因为缓存中的数据是易

    2023年04月19日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包