Redis介绍、Redis基本特性、关系型数据库、非关系型数据库、数据库发展阶段

  • Redis介绍
  • 关系型数据库
  • 关系型数据库的特点
  • 关系型数据库的不足
  • 非关系型数据库
  • 非关系型数据库特点
  • NoSQL的类型
  • 数据库发展阶段
  • Redis基本特性


Redis介绍

Remote Dictionary Service:翻译过来就是远程字典服务,简称redis。

为什么使用redis,需要先弄明白关系型数据库和非关系型数据库的区别,也就是SQL和NoSQL的区别和使用场景。

关系型数据库

俗称的SQL数据库,主流的MySQL、Oracle。

关系型数据库的特点

  1. 基于行存储数据,二维的模式(用表格的方式存储,有行有列)
  2. 存储结构化的数据,数据存储有固定的模式(schema)
  3. 表与表之间存在关联(Relationship)
  4. 大都支持SQL(结构化查询语言)的操作,支持复杂的关联查询
  5. 通过支持事务ACID(酸)来提供严格或者实时的数据一致性

关系型数据库的不足

  1. 要实现扩容难,只能向上(垂直)扩展,不支持动态的扩缩容,如果要实现水平扩容的话,需要引进一些复杂的技术,比如分库分表
  2. 表结构修改困难,因此存储的数据格式也受到限制
  3. 高并发情况下,基于磁盘的读写压力比较大

非关系型数据库

non relational,或者NoSQL,主流的Redis、MongoDB。
开始的时候,之所以叫NoSQL,刚开始是因为它不支持结构化查询语言(SQL)的操作,后来演变成not only SQL,不仅仅是SQL。

非关系型数据库特点

  1. 存储非结构化的数据,比如文本、图片、音频、视频
  2. 表与表之间没有关联,可扩展性强
  3. 保证数据的最终一致性,遵循BASE(碱)理论
  4. 支持海量数据的存储和高并发的高效读写
  5. 支持分布式,能够对数据进行分片存储,扩缩容简单

NoSQL的类型

  1. KV存储:Redis和Memcached
  2. 文档存储:MongoDB
  3. 列存储:HBase
  4. 图存储:Neo4j
  5. 对象存储
  6. XML存储
  7. ······

数据库发展阶段

特性

SQL

NoSQL

NewSQL(比如TiDB)

关系模型


×


SQL语法


×


ACID


×


水平扩展

×



海量数据

×



无结构化

×



Redis基本特性

  1. 速度快,放在了内存当中
  2. 支持多种数据类型(Memcached只支持KV)
  3. 支持多种编程语言
  4. 持久化、内存淘汰(Memcached没有持久化的机制)
  5. 功能丰富:事务、发布订阅、pipeline、lua
  6. 集群、分布式(Memcached不支持集群的主从设置,Memcached设计是多线程的)