在分布式数据库中CAP原理CAP+BASE:C:Consistency:强一致性,A:Availability:可用性,P:Partition tolerance:分区容错性。
CAP理论的核心是:**一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
最多只能同时较好的满足两个。**
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。(msyql/oracle);
CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。(redis/mongdb);
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。(大多数网站架构选择淘宝,京东);
BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
BASE其实是下面三个术语的缩写:
基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法。
再redis.conf中我们可以通过
Set the number of databases. The default database is DB 0, you can select a different one on a per-connection basis using SELECT where dbid is a number between 0 and ‘databases’-1
databases 16
可知,redis有16个簇。索引(index)从0开始,到15.
redis命令:
KEYS * 查看当前库中所有的key,SELECT index查找到簇
//查询redis下标为0也就是第一个库中所有的key;
127.0.0.1:6379> keys *
//select 1查询redis下标为1也就是第二个库;
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]>
FLUSHALL 清空16个库中所有的key,FLUSHDB只清空当前库中的key
清除库中的key:FLUSHALL会清除16个库中的所有key
127.0.0.1:6379> FLUSHALL
FLUSHDB会清除当前所在的库。
127.0.0.1:6379> FLUSHDB
EXISTS key 查看key是否存在
通过KEYS *可知目前库中存有k1和k2; exists k1是用来判断key k1是否存在,存在为1,不存在为0。