项目基础一Redis(2)

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了项目基础一Redis(2)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

详细的说明一下NOSQL数据库的背景由来、用处等。

         早期的web网络架构(单体架构):

项目基础一Redis(2)

        随着Web2.0时代的到来,用户访问量大幅增加,同时产生了大量的用户数据,加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。对于CPU、内存及数据库的io都有巨大的压力。

        

        ①解决CPU和内存的压力:用集群以及分布式架构(多台服务器)来解决,需要在服务器前加上负载均衡(nginx,会把客户端的请求平均分担到服务器中)。

        会出现一个问题?就是关于session的存储问题,当它访问服务器1,产生了 session对象,存储了用户信息;当它再次访问时,由于使用了负载均衡,可能会访问服务器2,但此时当前服务器并没有session对象,没有存储用户的信息,就不能证明用户是登录状态了。所有这里有一个session的共享存储问题。

        解决:使用NOSQL作为缓存数据库,存储用户信息(session)。优点:完全在内存中,速度快,数据结构简单。

项目基础一Redis(2)

       

         ②解决IO的压力:使用原始的方案:就是对数据库进行水平切分、垂直切分以及读写分离等,这些可以解决。

        但是不是最好的方案:比如分表、分库,是通过破坏一定的业务逻辑来换取性能。

        解决:使用NOSQL作为缓存数据库,减小io的读操作,能极大提高效率。

 

项目基础一Redis(2)

 

        再次说明一下NOSQL的特点:

             ①不遵循SQL标准

             ②不支持ACID(事务的4个特性:原子性、一致性、隔离性、持久性)

             ③远超于SQL的性能

        

        

 

 

脚本宝典总结

以上是脚本宝典为你收集整理的项目基础一Redis(2)全部内容,希望文章能够帮你解决项目基础一Redis(2)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:数据库