一、关系数据库与非关系数据库的对比
关系型数据库特点:
基于单一关系模型,结构化存储,有完整性约束(关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。)
通过二维表建立数据之间的联系
采用结构化查询语言(SQL)做数据读写
操作保存数据的一致性
非关系型数据库特点:
非结构化的存储
基于多维关系模型
部署容易,开源免费,成本低
nosql和关系型数据库比较
优点:
1)成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。
2)查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。
3)存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
4)扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。
缺点:
1)维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库几十年的技术同日而语。
2)不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本。
3)不提供关系型数据库对事物的处理。
关系型数据库的优缺点
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
二、企业级缓存产品介绍
各缓存产品对比
Memcached
优点:高性能读写、单一数据类型、支持客户端分布式集群、一致性hash
多核结构、多线程读写性能高
缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现。跨机房同步数据困难、架构扩容复杂。
Redis
优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式集群、单线程读写性能极高
缺点:多线程读写较Memcached慢
新浪、京东、直播类平台、网页游戏
memcached与redis在读写性能的对比
memcached适合多用户访问,每个用户少量的rw
redis适合少量用户访问,每个用户大量rw
Tair
优点:高性能读写、支持三种存储引擎(ddb、rdb、ldb)支持高可用、支持分布式分片集群、支撑了
几乎淘宝所有业务。
缺点:单机情况下,读写性能较其他两种产品较慢
三、使用场景介绍
Memcached:多核的缓存服务,更加适合于多用户并发访问次数较少的应用场景
Redis:单核的缓存服务,单节点情况下,更加适合于少量用户,多次访问的应用场景。
Redis一般是单机多实例架构,配合redis集群出现。