redis(2)

news2024/11/17 8:43:44

缓存:缓存是一个高速数据交换的存储器,使用它可以迅速的访问和操作数据

因为单体应用已经不适用于现在的环境了,所以最终变成分布式系统,本地缓存已经不适用了

1)比如说张三用户访问了应用程序nginx把请求分配给A服务器

A机器查询数据库,并且把数据库的结果放到缓存中了

2)这时张三再去访问此服务,nginx把这个张三发送过来的请求分配给B服务器了,这时B服务器之前没有过缓存,这时候B服务器还需要再次查询数据库,还需要再把数据库访问的结果放到缓存里面,因为它是本地缓存,他只是对本机缓存有效果,下次张三不去访问这台机器了,那你说缓存还有什么效果呢?因为用户的每一次访问都会被分配到不同的服务器里面

3)缓存的更新问题:假设在分布式服务中有100台机器,张三经过一段时间的时候,这100台服务器都已经保存了本地缓存了,比如说保存了某一次查询的结果,比如说select * from user where userID=1,也就是说本地缓存有100份,100个机器都进行缓存了,假设此时李四把userID=1的用户信息给修改了,李四是在100台服务器上面的某一台机器进行修改的,进行数据的更新,同时也把这一台服务器上面的本地缓存给更新了,但是每一台服务器都有自己的缓存,但是有其他99台服务器的缓存没有进行更新,都是保存在本地的,都是不知道的,其他本地缓存不可知,导致后续访问错误,由此可知本地缓存在分布式场景下已经不适用的,不可感知+不可变更,本地缓存查询和更新都有问题;

4)用户量比较少是可以进行单体应用的,当用户比较多,就必须使用分布式应用了,本地应用是每一台服务器都有着自己本地的缓存,所以我们会把redis部署到一个单独的服务器上面,这台服务器是为所有的应用服务器去服务的;

5)此时所有的应用服务器都是访问同一台redis服务器,这个时候就不会存在说本地缓存中,所有缓存只是保存在一台redis服务器,当服务器访问数据库时,先去查看一下redis服务器里面有没有缓存,如果有直接返回;

6)所以说我们需要将session信息保存在redis缓存中,如果session在每一台机器中缓存,没有分布式缓存,就会意味着一个用户对一个请求,需要登陆多次...

假设小明针对服务进行访问,nginx把请求分发给服务器1,小明进行登录,服务器1保存session信息,但是小明下一次访问服务,nginx把请求分发给服务器2,但是服务器2没有session信息,所以说小明只能重新进行登录,如果有100台服务器,nginx轮询分发服务器,小明难道需要登录100次吗?

快照方式是将某一个时刻整体的内存中的数据全部写到磁盘里面,假设10min之前,我已经拍了一个快照,把内存中的数据成功的写到了磁盘里面,但是再10min之后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/493107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模型实战(11)之win10下Opencv+CUDA部署yolov5、yolov8算法

win10下Opencv+CUDA部署yolov5、yolov8算法 测试环境:AMDRH7000+RTX3050+win10+vs2-10+opencv455+cuda11.7关于opencv470+contrib+cuda的编译,可以详见:Win10下Opencv+CUDA联合编译详细教程本文代码同时支持yolov5、yolov8两个模型,详细过程将在文中给出,完整代码仓库最后…

自动化测试真的能提效吗?怎么才能真正掌握自动化测试技巧呢?

近年来,随着软件开发速度的提高,自动化测试已经成为了一个必要的环节。但是,对于自动化测试,有些人认为它能够大幅提升效率,而有些人则认为自动化测试无法替代手工测试,并且实施自动化测试需要投入大量的时…

vue3 - 超详细头像裁剪并上传到服务器,支持按照自定义比例裁切图片效果组件插件(详细示例源码教程,一键复制运行开箱即用)

效果图 大部分都贼难用,而且全是bug。。并且很少有 vue3的,全是 vue2。。 本博客实现了在 vue3.js 项目中,实现图像上传后并按一定的比例进行裁剪的示例功能源码,支持各种参数、样式修改, 示例有 Element Plus + Vue3.js 版本,也有纯 Vue3.js 版本(无 UI 框架搭配),按…

【机器学习】西瓜书课后习题参考答案—第一章

记录西瓜书课后习题的思考与参考答案。 1.1 表1.1中若只包含编号为1和4的两个样例,试给出相应的版本空间。 答: 版本空间:与训练集一致的“假设集合”,称之为“版本空间”(version space) 只包含编号为1和…

Vue-cli搭建项目(包含Node.js安装和ElementUI安装)

目录 一、vue-cli 二、Node.js npm: Node.js安装: 测试: 三、Vue-cli搭建项目 使用HBuildex 创建一个vue.js项目 创建的自己的组件: 组件路由: 四、ElementUI安装 1.ElementUI下载: 2.在main.js中…

Echarts图表X轴文本过长导致展示不全

今天就遇到如题目所说问题。遇到问题当然取看官方文档喽,链接奉上ECharts-axis 博主使用的ECharts版本号为5.4.5 这个问题效果图如下: 可以看到x轴文本太长,导致部分x轴标签无法正常显示,在这里提供两种解决办法,并告诉…

OSI七层网络模型+TCP/IP四层模型

OSI七层模型: 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就…

6、Flutterr聊天界面网络请求

一、准备网络数据 1.1 数据准备工作 来到网络数据制造的网址,注册登录后,新建仓库,名为WeChat_flutter;点击进入该仓库,删掉左侧的示例接口,新建接口. 3. 接着点击右上角‘编辑’按钮,新建响应内容,类型为Array,一次生成50条 4. 点击chat_list左侧添加按钮,新建chat_list中的…

华为OD机试2023年最新题库(JAVA)

目录 华为OD机试是什么?华为OD面试流程?华为OD机试通过率高吗?华为OD薪资待遇?华为OD晋升空间?华为OD刷题列表,一天三题,刷出算法新高度,刷出人生新际遇。 大家好,我是哪…

什么是http代理504网关超时错误,要如何修复?

当你在使用 HTTP 代理时,有时候会遇到"504 网关超时"错误,这个错误看起来非常可怕,但实际上它并不是一个很难解决的问题。在本文中,我将向你介绍 504 错误的定义,以及为什么我们会遇到这个错误,同…

babysql

打开界面是一个登录框,所以直接使用的万能公式,但是没用出发了报错 结合提示来看,题目应该是过滤掉了or 尝试大小写绕过,失败了 尝试双写绕过,成功绕过限制 接下来就判断字段数,发现by也被过滤掉了 登是登上…

CAM350 PCB开短路检查指导

CAM350 PCB开短路检查指导 Layout完成后,通过DRC和华秋DFM检查没有问题后,使用CAM350进行开短路的检查,没有问题后可转交制版厂。 ①首先通过AD生成IPC文件,下图为生成步骤: File→Assembly Outputs→Test Point Repo…

新形势下,如何进行智慧园区移动应用建设?

智能化工园区通过信息化实现工业管理的数字化和网络化,实现对生产过程的全面监控和实时数据采集。这使企业能够更好地管理,及时发现问题并采取相应的措施来降低成本。此外,智慧化管理提高了企业资源的使用效率,避免浪费和重复利用…

异常___

规则:玩家是异常机器人,要突破正常机器人(防火墙)的扫描封锁攻击,到达目的地。 (1) 教学内容:指令的形式和运行方法。 简单的说就是脚本语言,指令的形式是给出固定顺序…

行为型模式-中介者模式

中介者模式 概述 一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中&#xf…

协方差矩阵

目录 1.方差和协方差的定义 2.协方差矩阵 3. 协方差矩阵的应用 3.1 对两个类内协方差矩阵进行对角化 3.2 机器学习中的协方差矩阵应用小结 4. 协方差矩阵中心对齐 1.方差和协方差的定义 2.协方差矩阵 3. 协方差矩阵的应用 3.1 对两个类内协方差矩阵进行对角化 对两个…

【Linux】动态链接和静态链接

函数库一般分为静态库和动态库两种 动态库:使编译器对用户的程序进行动态链接 动态链接:拷贝的是动态库中当前程序所需代码的地址到可执行程序中的相关位置,可在执行时链接到动态库中的相关,即动态链接的可执行程序再运行时仍然依…

了解设计模式

https://github.com/WittyKyrie/UnityUtil/blob/main/%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7/Object 代码仓库↑ 【游戏开发设计模式】单例模式,要提防的设计模式!!_哔哩哔哩_bilibili 参考↑ 组合模式: 继承会造成代码复用量…

Django框架的源码解析

简述从django-admin startproject [name]开始 小结 django.core.management init.py 1. 5个方法2. ManagementUtility 类 小结 base.py 1. 2个方法:2. CommandError(Exception):3. SystemCheckError(CommandError):4. CommandParser(ArgumentParser):5. DjangoHelpF…

【Gator Cloud】架构篇 - 提供基于云原生的数据安全保护

随着云计算的成熟和云计算系统的广泛使用,越来越多的企业选择将新业务部署到云上。但是,上云并不意味着就能够充分利用云平台的优势。目前,大部分的云化应用,依然还是基于传统的软件架构来搭建的,仅仅是移植到云上去运…