NoSQL简介

NoSQL是为解决系统性能问题而产生的数据库,其中redis是典型的NoSQL数据库。

web2.0时代,手机端与电脑端都可以通过服务器访问数据库,导致数据访问的压力急剧增加,可以使用NoSQL来解决这些问题。

1.NoSQL能减少CPU与内存的压力

系统通过负载均衡将客户端的请求分配给分布式服务器,如果只将客户端的seesion存储在单个服务器中,当客户端访问其他服务器时未能检测到session则不能登录,为了解决这个问题可以有四种解决方案:

  1. 将session存储在cookie中。最为方便的方法,但cookie存储在客户端,可能会被他人截取,不安全。

  2. 存储在文件服务器数据库中。每当客户端登录时都需要访问数据库,IO压力很大,效率很低。

  3. session复制。将客户端的session复制到每一个服务器中,毫无疑问,这样session数据会很冗余,会浪费很多服务器空间。

  4. NoSQL数据库。将session存储在NoSQL数据库中,因为其将数据直接存储在内存中,客户端登录时直接在缓存中进行查询,访问速度特别快,不需要进行IO操作。

2.NoSQL能作为缓存来使用,提高IO访问速度

当数据库中数据量特别大时,数据库操作的性能会急剧下降,这时通常会通过破坏一定的业务结构来换取性能,比如:水平切分,垂直切分,读写分离等等。

       但上述的方式并不是最好的方法,可以通过NoSQL缓存数据库来减少IO的操作,将常访问的数据放入缓存数据库中,当再次访问该数据时直接进入缓存数据库查询,而不需要进入数据库进行IO,加快访问速度。

3.NoSQL是什么?

        NoSQL(Not Only SQL),泛指非关系型数据库

NoSQL不依赖业务逻辑进行存储,而是以key-value形式进行存储,因此大大增强了数据库的可扩展性。NoSQL的特性如下:

  • 不遵循SQL标准。

  • 不支持ACID(事务的四大特性:原子性,一致性,隔离性,持久性)。

  • 远超SQL的性能。

4.NoSQL应用场景及不适用场景

NoSQL适用场景:

  • 对数据高并发的读写。

  • 海量数据的读写。

  • 对数据的高可扩展性

NoSQL不适用场景:

  • 需要事务的支持。

  • 机遇sql的结构化查询存储,处理复杂的关系,需要即席查询(用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表)。

5.常见的NoSQL数据库

  • Memcache:很早出现的NoSQL数据库,数据都存储在内存中,不支持持久化。且支持简单的key-value模式,支持类型单一。一般用作缓存数据库辅助持久化的数据库。

  • Redis:几乎覆盖了Memcache的所有功能。数据都存储在内存中,支持持久化,主要用作备份回复。除了支持key-value模式,还支持多种数据结构存储,如:list,hash,set,zset等。一般用作缓存数据库辅助持久化的数据库。

  • MongoDB:文档型数据库,数据都存储在内存中,若内存不足则将数据存储在硬盘中。虽然是key-value模式,但是对value (尤其是 json)提供了丰富的查询功能。支持二进制数据及太型对象。 可以根据数据的特点替代RDBMS,成为独立的数据 库。或者配合RDBMS,存储特定的数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值