云视互动-千万用户架构之混合型数据库的应用随着云视互动平台用户规模的扩展,针对千万甚至上亿用户的可伸缩扩展的数据平台架构就显得非常关键和迫切
从产品初期到现在完善的过程中,经历了很多次的技术选型和迭代升级,逐渐的沉淀和完善自有的一套体系,其中包括Mysql,Mongo,Redis,Memcached,HBase等技术
一、什么是NoSQLNoSQL,泛指非关系型的数据库,它是“NotOnlySQL”的缩写
它的意义是:在传统关系型数据库无法实现和满足某些业务场景的情况下,可以用NoSQL来代替部分功能,它是为弥补关系型数据库的不足应运而生
NoSQL数据库具有如下几个大的特点:1)没有模式:不需要事先定义数据模式,预定义表结构
2)无共享架构:各节点数据独立
3)弹性可扩:动态增加或者删除结点
4)异步复制:异步解耦,提升数据处理性能
5)BASE特性:非ACID特性,最终一致性和软事务
NoSQL数据库并没有一个统一的架构和产品规范,不同NoSQL数据库之间的不同,远远超过两种关系型数据库的不同
可以说,各个NoSQL数据库各有所长,成功的NoSQL数据库必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL数据库
二、为什么用NOSQL目前我们都生活在一个庞大的而复杂的信息化大数据时代,传统的关系数据库在应对海量数据存储和检索分析的时候,基于其自身的一系列规范化设计,没法对数据进行更高效的管理和读写操作,包括硬件能力的限制,这种问题更加突出
而NoSQL的优势在此就体现出来,具体如下几点:2
1易扩展NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性
数据之间无关系,这样就非常容易扩展
也无形之间,在架构的层面上带来了可扩展的能力
2大数据量,高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同