前言
随着社会的发展,数据存储经历了诸多的过程,这篇文章就是介绍Redis的发展由来:
1、单机Mysql时代
这种模式存在以下的瓶颈:
数据量
太大,一个机器存放不下- 数据的
索引
太大,一个机器的内存放不下 访问量
(读写混合)太大,一个服务器承受不住
在这之后,我们试着做一些优化,比如:
优化数据结构和索引——>文件缓存IO——>Memcached
2、 缓存Memcachaed+读写分离(垂直拆分)
网站上80%的情况都是在读
,每次都去查询数据库,效率很低。这时候可以加入缓存机制,第一次查询去MySQL中读取数据,将数据返回给用户的同时,在缓存中也存储下来。第二次访问,就可以直接从缓存中读取。
这个时代在一定程度上解决了读的问题,那么写的问题怎么解决,就来到了下面的时代:
3、分库分表+水平拆分(MySQL集群)
但是随着社会的发展,要存储数据的类型
(音乐,视频,地理位置,人际交往圈、用户自己产生的数据,用户日志等)也越来越繁多,数据量也爆发式增长
。这样MySQL等关系型数据库就越来越不够用了!NoSQL数据库就开始进入人们的视野!NoSQL数据库可以很好的解决这些问题。
一、NoSQL
NoSQL(Not Only SQL)泛指非关系型数据库。
二、NoSQL的特点
方便扩展
(数据之间没有关系)- 大数据量
高性能
(Redis写8w/s, 读11w/s,NoSQL的缓存记录级是一种细粒度的,性能会更高) 数据类型是多样型的! 不需要事先设计数据库,随取随用
,解决了数据量巨大时无法完善表设计的问题存储方式多样
, 键值对,列存储,文档存储,图形数据库(社交网络)没有固定的查询语言
三、NoSQL的四大分类
目前的大多数企业还是Redis+RDBMS
3.1 KV键值对
- 新浪 Redis
- 美团 Redis+Tair
- 阿里 百度: Redis+Memcached
3.2文档型数据库 bson格式
MongoDB
- MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档
- MongoDB是一个介于关系型数据库和非关系型数据库的中间产品。MongoDB是非关系型数据库中功能最丰富,最像关系型数据库的
3.3列存储数据库
3.4 图关系数据库
- 他不是存图片的,存储的是关系,比如:朋友圈社交网络、广告推荐!
- Neo4j, infoGrid
简单比较
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)