Redis学习笔记

NoSQL入门概述

NoSQL数据库的四大分类

1.KV键值

典型介绍:

  • 新浪:BerkeleyDB+redis
  • 美团:redis+tair
  • 阿里/百度:memcache+redis

2.文档型数据库

典型介绍:

  • CouchDB
  • MongoDB

3.列存储数据库

典型介绍:

  • Cassandra
  • HBase
  • 分布式文件系统

4.图关系数据库

它不是存放图形的,存放的市关系,比如:朋友圈社交网络、广告推荐系统等。
典型介绍:

  • Neo4J
  • InfoGreid

四者对比

CAP原理 + BASE

传统的ACID

A(Atomicity):原子性。 指事物是一个不可分割的单位,事务中的操作要么全部发生要么全部不发生。
C(Consistency):一致性。 事物前后数据的完整性必须保持一致。
I(Isolation):隔离性。 多个用户并发访问数据库时,数据库为每个用户开启的事务,不能被其他事务的操作所干扰,多个并发事物之间要相互隔离。
D(Durability):持久性。 一旦事务提交,那么他对数据库的数据的改变是永久的,即使数据库发生错误也不会产生影响。

NoSQL的CAP

C(Consistency):强一致性。 在同一时刻分布式系统的所有数据备份都要有同一个值。
A(Availability):可用性。 在集群的一部分节点故障后,集群是否还能响应用户的请求。
P(Partition rolerance):分区容错性。 以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

传统的关系型数据库必须同时满足ACID四个特性。而在分布式系统中ACP只能三选二。

CA - 单点集群。满足一致性、可用性的系统,通常在可扩展性上不太强大。典型:RDBMS。

CP - 满足一致性、分区容忍性的系统,通常性能不是特别高。典型:MongoDB、HBase、Redis。

AP - 满足可用性、分区容忍性的系统,通常对一致性要求低一些。典型:CouchDB、Cassandra、DynamoDB。

对于NoSQL而言,分区容忍性是我们必须实现的。所以我们只能在一致性和可用性之间做一个权衡。

BASE

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

BASE由下面三个单词构成:

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

他的思想就是通过让系统放松过某一时刻数据一致性的要求来换取系统整体伸缩性和性能上的改观。(牺牲C,满足AP)

分布式、集群分布

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

你可能感兴趣的:(Redis学习笔记)