首页 / 知识
千万级购物车系统缓存架构方案
2023-04-11 16:20:00

缓存架构主架构图:
主架构中包括缓存集群、缓存限流、缓存大value处理、HotKey探测系统、redis故障恢复降级和redis-mysql数据同步
缓存一致性解决方案:
一、对于所有的DB操作都不去添加具体的删除缓存的操作,而是通过canal监听binlog的方式
二、待数据确认已提交到数据库后,通过监听的变化,解析出对应的数据后,过滤掉非增删改的
binlog
三、然后通过常量类配置的需要处理数据一致性的相关表以及关键字段和缓存前缀key,进行组装出需要进行删除的缓存key。并且通过mq的ack机制来保证缓存一定会被删除掉。
缓存限流解决方案:
防止redis崩溃之后,系统无法正常运转,所以我们需要做一个降级处理。
系统操作redis的所有方法一般都是通过RedisCache和Redislock两个类来处理的,所以我们通过AOP切面的方式,对这两个类中的所有方法做一个切面,如果在这里执行redis操作的时候,redis挂掉了,连接失败了,那么方法会抛异常,我们在切面处理方法上,捕捉异常,然后记录一下是redis挂掉还是网络暂时的波动
大Value处理方案:
一、搭建的redis集群
二、在canal中已经创建好了监听,存储到mysql中redis_large_key_log表的canal instance
三、在每天凌晨3点,会将Redis中的大key(value)数据,通过canal instance发送到 MQ
四、消费redis_large_key_log表的binlog数据,该数据包含Redis的大key(value)信息
五、将大value切分成多个key,返回时拼接组装
|
最新内容
相关内容
python升级pip不能用怎么回事
python升级pip不能用怎么回事,软件,情况,培训,提示,管理工具,杀毒软件,插件,模块,防护,命令,pip是python的包管理工具,会不定期的更和升级,有时python有哪些高级特性?
python有哪些高级特性?,培训,特性,python使用Redis会遇到哪些缓存问
python使用Redis会遇到哪些缓存问题?,培训,缓存,问题,python函数的高级使用方法
python函数的高级使用方法,代码,函数,灵活,数据,培训,时间,定义,程序,赋值,变量,Python的函数是“一等公民”,因此函数本身也是一个对象,函数既python新手如何系统学习
python新手如何系统学习,基础,系统,状态,环境,中级,培训,阶段,代码,概念,管理,我们可把学习python分为4个阶段,每个阶段需要完善的掌握知识点,ppython运算符的优先级规则
python运算符的优先级规则,培训,优先级,括号,规则,操作,赋值,顺序,实例,规律,以上,python运算符的优先级规则1、先执行优先级高的运算,优先级python列表缓存的探究
python列表缓存的探究,地址,培训,缓存,列表,数据项,实例,下次,以上,之后,全部,python列表缓存的探究1、说明当删除一个列表之后,会将该列表中python系统内置方法如何获取
python系统内置方法如何获取,系统,代码,培训,方法,对象,字符串,物体,函数,橡皮擦,语法,python系统内置方法如何获取1、说明在实际开发中,我们pythonos怎样处理系统文件
pythonos怎样处理系统文件,系统,培训,环境,代码,文件,环境变量,模块,操作系统,类型,代表,pythonos怎样处理系统文件1、获取系统类型对代码进大约64位:用Vista 64编写的代码是否
大约64位:用Vista 64编写的代码是否在32位操作系统上兼容?,大约64位:用Vista 64编写的代码是否在32位操作系统上兼容?,经理,内存,升级到关于C#:全球化架构
关于C#:全球化架构,关于C#:全球化架构,产品,描述,数据库中,化为,Globalization architecture我需要将电子商务解决方案的产品存储在数据关于Windows:如何在XP / Vista及更
关于Windows:如何在XP / Vista及更高版本上为VB6创建简单的安装系统?,关于Windows:如何在XP / Vista及更高版本上为VB6创建简单的安装