Redis(一)——NoSQL入门和概述
什么是NoSQL
NoSQL=Not Only SQL,意为“不仅仅是SQL”,即非关系型数据库。
NoSQL特点
- 易扩展
- 大数据量,高性能
- 多样灵活的数据模型
Redis核心
- KV:键值对
- Cache:缓存
- Persistence:持久化
大数据时代的3V
- 海量Volume:海量的数据
- 多样Variety:多样化的数据
- 实时Velocity:实时的数据
互联网需求的3高
- 高并发
- 高可扩
- 高性能
横向扩展和纵向扩展
纵向扩展:如计算机加硬件,总有极限
横向扩展:相当于启动多个实例做同一件事情,有点像docker的容器和负载均衡
NoSQL数据模型简介——聚合模型
-
KV键值对
-
Bson,类似于JSON
-
列族:如图所示
-
图形:如图所示
NoSQL的CAP理论
CAP理论:
- C:强一致性
- A:高可用性
- P:分布式容忍性
CAP的3进2:
在分布式系统中,最多只能选取CAP理论的两点,如CA、CP、AP。
ps:
其中AP为大多数网站架构的选择,
CA就是以前的关系型数据库,如MySQL
CP指的就是Redis、MongoDB
BASE
BASE:就是为了解决关系型数据库强一致性引起的问题而引起的可用性降低提出的解决方案。
- 基本可用(Basically Available)
- 软状态(Soft State)
- 最终一致(Eventually consistent)
思想:通过让系统放松某一时刻数据一致性要求来换取系统整体伸缩性和性能上的改观。
分布式和集群
分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过RPC/RMI之间的通信和调用,对外提供服务和组内协作。
集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一调度,对外提供服务和访问。