NoSQL数据库介绍

1、技术发展:
在这里插入图片描述

功能问题好理解,就是对项目进行增删改等操作,我们用基础的Java呀、Jsp啊那些基础技术就能做到,但是当业务发展到后期我们需要进行业务功能升级时则用原生的这些工具不好进行拓展,于是诞生了一系列框架,但是我们的项目必然不是一个人使用,有时是成百万的的用户同时使用,那么我们就需要解决一个东西就是性能问题,于是诞生了这些什么多线程啊MQ啊之类的技术,这就是NoSql类型数据库的一个存在的原因。

NoSql的引入:
web1.0时代:
在这里插入图片描述

在早期web时代,因为没有技术限制,所以导致了这种单体架构的产生。可是发展到后面web2.0时代,我们发现了这种单体架构有点难以承受与日俱增的访问量,这个时代的访问量极具增大,特别是手机端也可以访问网站之后。
在这里插入图片描述

可以看到单体服务器面临了巨大压力。
而这种压力使用nosql数据库可以解决,比如如何解决CPU以及内存压力:
在客户端访问时,我们会对服务器做一个集群或者分布式部署,意思就是我们不会只有一台服务器在运行,而是多台。然后我们在服务器与客户端之间会加上一个东西叫负载均衡或者叫反向代理,比如一般用nginx。有什么用呢?作用就是在我们的客户端进行服务器访问时会先经过Nginx,然后Nginx会帮我们将请求平均分配到各台服务器上。比如客户端一共有四个请求,那么我们的两台服务器则各自处理两个请求。
在这里插入图片描述

但是这种方式也会产生问题,就session存储的问题。比如我们第一次访问在1号服务中存储了session,这个session中一般保存了我们的一些信息,比如登录的用户信息。那我们的第二次请求Nginx又不一定把这个分发到1号服务器,那这样就会产生bug,所以我们需要解决这个问题。
第一种解决方式是存储到客户端的cookie里,但是缺点是不安全。
第二种解决是session复制,意思是如果我们在1号服务器进行了访问,那么将在1号服务器中产生的session对象复制多份到其他的服务器上就可以保持session的同步。但是一样有缺点,就是内存的极大浪费。
第三种解决方式是,使用nosql数据库,我们会将集群中的每台服务器中是session对象存到nosql数据库中,这样就可以实现如果在nosql数据库中有这个session则登录,没有则不予登陆即可。
在这里插入图片描述

详细如下:
在这里插入图片描述

同时使用nosql数据库也可以解决IO压力:
在实际项目中,数据库的使用随着时间的增长会变得越来越复杂,数据越来越多,进行操作效率会越来越低,我们的解决方式是可以对数据库进行水平切分、垂直切分或者读写分离等操作来提高效率,但这样会破坏一定的业务逻辑来换取性能,显然我们是不太能接受的。
此时一种方式是把我们的数据进行专门的存储,如列式存储和文档存储,但这里只做介绍。
我们还有一种方式就是使用nosql数据库做一个缓存,我们可以将我们很多的重复的读写操作放到我们的缓存数据库中,这可以提高我们的效率。
在这里插入图片描述

NoSql数据库
Nosql数据库概述:
在这里插入图片描述

Nosql的使用场景:
在这里插入图片描述

Nosql不适用场景:
在这里插入图片描述

几种场景的nosql数据库:
Memcache(现在用的不多了):
在这里插入图片描述

Redis:
在这里插入图片描述

MongoDB:
在这里插入图片描述

行式存储数据库(大数据时代):
一种是行式存储数据库:
在这里插入图片描述

另一种是列式数据库:
在这里插入图片描述

然后还有一些其他的nosql类型数据库,这里就不一一介绍了。
要记住的还有一点,就是redis数据库现在是非常主流的nosql类型数据库(傲娇)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在地球迷路的怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值