NoSql学习总结

本文首先介绍了MySQL数据库在应对高并发和大数据量时的局限性,包括读写压力、扩展性和数据恢复速度等问题。接着,文章阐述了NoSQL数据库的兴起,其作为非关系型数据库,能更好地处理大规模数据集合和复杂关系网络,具有易扩展性、大数据量高性能和灵活的数据模型等优点。NoSQL常见的工具包括Redis、Memcached和MongoDB等。最后,文章提到了分布式数据库中的CAP原理,指出NoSQL通常牺牲强一致性来保证可用性和分区容错性,适用于大多数网站架构的选择。
摘要由CSDN通过智能技术生成

一、MySQL:
1.MySQL时代
早年,一般网站访问量都不会太大,基本上单个简单的数据库就能解决一般的数据反问问题。那时基本更多的网站都是以静态网页的样子存在,数据动态交互的网站不是太多。

以下为这种方式的通用架构(图片来源为尚硅谷Redis教程,下同):

在上图结构下,在数据存储上会出现那些瓶颈呢?

1.一台机器无法满足网站数据的总大小。

2.一台机器无定法存下数据的索引(B+ Tree)时。

3.访问量(读写混合)一个实例不能承受。

2 Memcached(缓存)+MySQL+垂直拆分
伴随国内互联网市场的成熟,用户也开始增加,相应的访问量也开始上升,在之前采用MySQL架构的网站几乎大部分在数据库处理反面出现了性能问题,web程序不单单专注于功能上,同时也开始去追求程序性能。这时便开始大量采用缓存的技术来缓解数据库方面的压力,优化数据库的结构和索引。最初一般公司比较流行通过文件缓存来缓解数据库压力,但伴随着访问量持续增加,多台web机器通过文件缓存不能共享,其中机器大量缓存文件也带来了比较高的IO压力。这时,Memcached就以救世主的姿态出现成为一时非常流行的技术产品。

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。

Memcached其作为一个独立的分布式的缓存服务器,同时给多个web服务器提供一个共享的高性能缓存服务,在Memcached服务器的基础上,又发展了根据hash算法来进行多台Memcached缓存服务的扩展,然后又出现了一致性hash来解决增加或减少缓存服务器导致重新hash带来的大量缓存失效的弊端。

3 Mys

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值