持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
Redis的AKF架构
今天我们来学习一下Redis中比较常见的AKF架构,话不多说,咱们马上开始!
单一Redis存在的问题
- 单点故障:只有一台Redis的话,如果它出现故障了,那么就相当于整个服务都不可用了
- 缓存容量:单台Redis的缓存容量有限,在多数据的场景下不适合使用
- 访问压力:单台Redis在高并发的生产环境下是会承受很大压力的,有可能压力过高而崩溃
AKF的x轴
这个主要是为了解决单点故障的问题!
正如上图所示,将一条Redis的数据复制到多台Redis上,用户可以访问上述任意一台Redis,这样就算其中一台Redis出故障了,也还有其他Redis可以提供服务。
AKF的y轴
这个维度主要是为了解决Redis缓存容量不够大的问题!
我们可以根据不同的业务场景在y轴的维度上,分成多台Redis,每个Redis分管一种业务。
y轴维度上的Redis,用户都可以访问的。
这时候说不定会有朋友问了:y轴维度上分管不同业务的Redis是单台啊,这也是会有单点故障的,那该如何解决呢?
很简单,在y轴上的每台Redis都开一个x轴:
这样就可以很好地解决了y轴上每台Redis的单点故障问题。
AKF的z轴
这个维度上的扩展主要是为了减缓Redis的访问压力,或者是解决缓存容量问题!
这个是基于当前业务的前提下,对数据做进一步的拆分,是粒度更小的;这样不仅可以减缓Redis的访问压力,而且还可以在一定程度上解决单台Redis缓存容量有限的问题。
相信各位朋友看到这里已经对Redis中AKF架构有所了解,那么大家可以思考一下以下问题进行相应的巩固:
- x轴上Redis与Redis之前的数据复制是如何实现的?
- y轴是根据业务场景拆分Redis的,那究竟是如何拆分业务的呢?
- z轴上什么时候才需要进行更小粒度的拆分?