零售系统软件架构---设计之缓存篇

一、概述

                缓存在我们系统内部也广泛使用,基本分本地缓存和分布式缓存。本地缓存由自定义写的缓存组件,分静态缓存与动态缓存,所谓静态就是数据存入就不会被应用清除,动态缓存采用LRU淘汰策略。本地缓存自不多说。但就使用的分布式缓存Redis说明下。
                说到缓存的使用场景,1、需要经常访问;2、是很少发生改动;(如果使用缓存并且数据发生频繁改动,同步开销需要注意控制。)

二、场景

                 多个子系统都需要使用缓存,比如上篇写到的用户权限数据,还有基础数据,比如(机构,品牌、品类,商品等等),还有一些商品价格信息。设计使用上,没有使用Redis持久化,只是单单内存缓存,比如,Key设计,每种API时的时间复杂度的考量,缓存更新策略等,这点大家基本达成共识。那么我们的部署架构应该怎么来做呢?
                 一种声音是A:多个子系统使用同一个缓存集群。(实际上目前我们使用的是单机Redis。单单内存缓存HA确实比较少见。大家都在期待Redis3.0)

            另一种声音是B:最好是每个子系统同一套缓存集群。(前期可以是同一个实例)。

我们还是使用目标场景决策,来选型我们的部署方案。

三、选型

                使用过Redis的同学都很清楚,Redis单线程结构,所以,设计缓存接口方案时,都注意控制每个API的请求处理时间。那不相关的系统缓存,放在一起的原因,只有一个解释,就是成本考虑。
                                 A                                                B
成本                       低                                                高
性能                       低                                                高
操作耦合性          高                                               低
维护复杂性          低                                               相对高
                当然,后续对子系统缓存设计,也需要考量缓存数据量,访问压力,进而采用不同的缓存策略。

                综上:前期可以将不同系统缓存使用多Redis实例隔离。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值