通过前面几天的学习,我们在面对高并发流量时,为了应对大量读写请求,特此将我们的普通存储系统开发成了一套分布式存储系统。主要基于读写分离主从复制以及数据分库分表实现的。不清楚的可以再回去看看啊数据库读写分离方案,实现高性能数据库集群,数据库分库分表后,我们生产环境怎么实现不停机数据迁移
后来又有朋友问我,如果他们的业务还在继续增长,都成国内独角兽的行业了,之前动态分的1024个库表每个表都达到了亿级别的,那时,各方面又出现了各种性能瓶颈了,还需要再分库分表吗?如果你的感受业务都达到了这种维度,那这个时候,我就建议不要再去继续折腾分库分表了,我们用NoSql数据库去缓解我们现有系统的性能瓶颈,并不是直接替换哈。这种情况下我们应该怎么做呢?今天我们就来讲一讲NoSql数据库和我们现有关系型数据库怎么协作来为我们业务服务。
什么是NoSql
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。那NoSql发展到现在都有哪有比较成熟的且常用的类型呢,下面我来简单列举下我们日常开发中接触比较多的NoSql:
-
Redis :基于KV存储结构,由于是使用内存存储,所以读写性能都极高,也是高于现在的关系型数据库的。一般如果我们业务中对性能要求比较高的话,就可以使用redis。
-
Hbase:列式存储数据库,和我们以行为单位的关系型数据库不一样,它是采取列式存储的,通过id查询速度很快,一般我们的大量离线任务数据就可以存在