Redis-nosql入门概述(上)
一.互联网背景下为社么使用nosql
》发展史:
1.单机mqsql的美好年代
2.Memcached(缓存)+mysql+垂直拆分
3.mysql主从,读写分离
4.分库分表+水平拆分+mysql集群
分库分表:
》分库:垂直分库和水平分库
1)垂直拆分:根据业务关系将一个数据库实例的数据分解,并由多个数据库实例管理;比如原本A数据库按用户,订单,支付的关系拆解,B数据库管理用户相关的数据,C数据库管理订单相关数据,以此类推。垂直拆分是在业务的基础上拆解成多个数据库来管理,通常是优先考虑的选择
2)水平拆分:一般水平拆分是基于垂直拆分的基础上实现的,把负责某一业务(比如用户相关)的数据库表根据区间来拆分成多张表。比如原本一张有10000条数据的用户表,我们可以划分为两部分,前5000条的数据归一张表,后5000也归一张表,且这两张表是不同库的。水平拆分是按区间把表进行拆分并由不同的库来管理。
》分表:垂直分表和水平分表
1)垂直分表:在表的垂直方向或者说按字段进行表的拆分,将“宽”表拆解成多个“窄”表,表的字段完全不同
2)水平分表:水平方向上对表数据进行拆分(不影响表结构),将“长”表拆解成多个“短表”,表字段完全一样
水平拆分:参考上面的分库分表的水平拆分
mysql集群:多台电脑搭建mysql,分担数据!
分库分表可参考:https://www.cnblogs.com/java-friend/p/12208384.html
5.mysql的拓展性瓶颈
6.今天是啥样的?
7.为什么使用nosql
》nosql是一个理念,泛指非关系形数据库。由于数据的多样性和海量,关系型数据库(mysql,oracle等)的行列结构的形式已不满足需要,其拓展性很差,所以为了更好的拓展性,nosql理念也由此诞生