redis学习笔记(十一)AKF、CAP理论

本文探讨了分布式系统中AKF原则,即从全量、业务和再拆分三个维度解决单点故障、容量有限和压力大的问题。同时,解释了CAP理论,指出在一致性、可用性和分区容错性之间只能取两者,并详细阐述了主从与主备模型的差异及自动故障转移机制。
摘要由CSDN通过智能技术生成

一、AKF原则

1.redis单节点有什么问题?

(1) 单点故障
(2) 容量有限
(3) 压力大

2.什么是AKF原则?

AKF网上查不到是什么的缩写。。
说穿了,就是从3个维度解决单以上3个问题(不止redis,所有分布式系统都遵循)。

x轴:全量,镜像
一般用主从、主备来解决。
主备解决单点故障问题,读写分离解决读压力问题

y轴:业务,功能
多个不同实例解决
如redis实例1储存用户相关的数据
redis实例2储存订单相关的数据
解决容量有限和压力大的问题

z轴:再拆分,可用优先级或逻辑拆分
如redis实例2存订单数据,但订单数据太多一个redis实例也存不下了咋办?那就进一步拆分,用多个redis储存订单数据。然后用某种算法(如一致性hash算法)访问多个redis。
进一步解决容量有限和压力大的问题。

AKF原则图解:
AKF

二、CAP理论

1.什么是CAP

C:Consistency 一致性
A:Availability 可用性
P:Partition Tolerance 分区容错性(最难理解)

CAP理论指的是同一个分布式系统中,3条性质最多只能满足2条
为什么只能满足2条?
答:如主从模型中,主被set k1 1,从机立刻get k1是否立刻能获取k1的值?
此时就要分情况
1.如果主set k1后立刻对所有备机加锁,等备机写入k1后才释放锁,那么从库就能获取k1。这种就是CP模型(一致性优先,但加锁期间会导致系统不可用),这种一致性又称为强一致性
2.如果主set k1不加锁,而是异步的向从库set k1,那么从库就有可能获取不到k1(可能还被同步过去),异步期间系统依然可用。这种就是AP模型(可用性优先),这种一致性又称为弱一致性。

那CA模型又是啥?
这种一般不讨论。因为CA模型就是单实例系统(非分布式)。P是分区容错性,意思就是分布式允不允许出错的意思(如网络故障)。

2.主从和主备的区别:

主备:只能访问主,备是用来接替主的
主从:都可以访问,但更偏向主(更偏向这个方案)
redis 2种都可以

3.主备模型怎么自动的故障转移?

意思就是主挂了,备机怎么自动的接替主机。很简单,用另一个程序监控主机,一监控到挂了就执行脚本,执行设置从机为主机之类的相关操作。那问题又来了,监控程序自己也是一个单点,所以监控程序也需要做高可用。

如果有写错的地方,欢迎大家指正,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值