在分布式数据库中CAP原理+BASE

news/2024/7/24 2:28:27 标签: redis

1.传统的ACID是什么?

A(Atomicity)原子性

原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

C(Consistency)一致性

一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

I(Isolation)隔离性

所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的

D(Durability)持久性

持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

2.CAP是什么?

C(Consistency)强一致性

数据一致更新,所有数据变动都是同步的

A(Availability)可用性

好的响应性能

P(Partition tolerance)分区容错性

系统中任意信息的丢失或失败不会影响系统的继续运作。

CAP最多只能同时较好的满足两个,分为CA、CP、AP原则

CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大
CP:满足一致性,分区容忍性的系统,通常性能不是特别高
AP:满足可用性,分区容忍性的系统,通常可能对一致性要求低一些
大多数选择AP

3.BASE是什么?

BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案

基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)

分布式和集群的概念

简单来讲:

1分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作
2集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问

http://www.niftyadmin.cn/n/737004.html

相关文章

Redis五大数据类型及命令

默认16个数据库,类似数组下表从零开始,初始默认使用零号库,默认端口是6379 Select:命令切换数据库 Dbsize:查看当前数据库的key数量 FlushDB:清空当前库 FlushAll:清空所有库 统一密码管理…

Redis配置文件redis.conf详解

Linux下的配置文件单独考拷贝出来进行操作,这是一个好习惯! Units单位: 配置大小单位,开头定义了一些基本的度量单位只支持bytes,不支持bit对大小写不敏感 INCLUDES包含: 和Struts2配置文件类似,可以通过includes包含&#xff…

Redis持久化一一RDB

Redis可以实现数据的持久化存储,即将数据保存到磁盘上。 Redis的持久化存储提供两种方式:RDB与AOF。RDB是默认配置。默认是关闭AOF模式的,AOF需要手动开启 RDB(Redis DataBase):在指定的时间间隔内将内存中的数据集快…

Redis持久化一一AOF

AOF(Append Only File):以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根…

Redis事务介绍

是什么? 可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞 能干嘛? 一个队列中,一次性、顺序性、排他性的执行一系列命令 怎么玩&a…

Redis的发布订阅

Redis的发布订阅是进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息 订阅/发布消息图: 命令 实际工作中不会使用它来做消息中间件,了解即可。

abstract class和interface的区别

1、abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。 2、在abstract class中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中&#xff0c…

Redis的主从复制,读写分离

主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制。Master以写为主,Slave以读为主。 作用 读写分离:只在从库读取数据,写操作在主库容灾恢复:主库进行写操作会在从库进行复制,达到冗余备…