| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 项目基础一Redis(2) -> 正文阅读 |
|
[大数据]项目基础一Redis(2) |
详细的说明一下NOSQL数据库的背景由来、用处等。? ? ? ? ?早期的web网络架构(单体架构):? ? ? ? 随着Web2.0时代的到来,用户访问量大幅增加,同时产生了大量的用户数据,加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。对于CPU、内存及数据库的io都有巨大的压力。? ? ? ??? ? ? ? ①解决CPU和内存的压力:用集群以及分布式架构(多台服务器)来解决,需要在服务器前加上负载均衡(nginx,会把客户端的请求平均分担到服务器中)。????????会出现一个问题?就是关于session的存储问题,当它访问服务器1,产生了 session对象,存储了用户信息;当它再次访问时,由于使用了负载均衡,可能会访问服务器2,但此时当前服务器并没有session对象,没有存储用户的信息,就不能证明用户是登录状态了。所有这里有一个session的共享存储问题。? ? ? ? 解决:使用NOSQL作为缓存数据库,存储用户信息(session)。优点:完全在内存中,速度快,数据结构简单。? ? ? ????????? ②解决IO的压力:使用原始的方案:就是对数据库进行水平切分、垂直切分以及读写分离等,这些可以解决。????????但是不是最好的方案:比如分表、分库,是通过破坏一定的业务逻辑来换取性能。? ? ? ? 解决:使用NOSQL作为缓存数据库,减小io的读操作,能极大提高效率。? ? ? ? ? ? 再次说明一下NOSQL的特点:? ? ? ? ? ? ?①不遵循SQL标准? ? ? ? ? ? ?②不支持ACID(事务的4个特性:原子性、一致性、隔离性、持久性)? ? ? ? ? ? ?③远超于SQL的性能???????? ? ? ? ??? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:31:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |