项目应用多级缓存示例

前不久做的一个项目,需要在前端实时展示硬件设备的数据。设备很多,并且每个设备的数据也很多,总之就是数据很多。同时,设备的刷新频率很快,需要每2秒读取一遍数据。

问题来了,我们如何读取数据,并且在前端展示?

我的想法是利用多级缓存:
1)首先是有个数据采集程序,不停地采集设备的数据。采集到数据以后,写入redis的1号库;
2)WEB后端设置一个定时器,每2秒读一次redids的1号库,处理后写入redis的2号库。之所以要处理一下,是因为1号库的数据比较原始,处理后才适合前端处理
3)前端也设置一个程序,每2秒向后端请求一次数据,后端将redis#2数据返回;前端收到数据后写入前端缓存。我们前端是用vue搞的,所以存入store。
4)前端由很多个组件构成,每个组件都从store中读取数据,然后展示。

系统结构如图所示:
在这里插入图片描述
优点:
1)数据采集程序与WEB前后端解耦,职责单一,除了采集数据,啥都不用管。简单的往往就是最好的,不容易出错
2)后端定期处理原始数据,将结果缓存,当前端请求时,返回缓存中的该结果,减少重复劳动,提高了性能
3)前端虽有多个组件,但不是每一个组件都向后端请求,而是统一请求一次,存入前端缓存,然后全部组件都从前端缓存中读取,对性能是一个保障。

事实证明,这种多级缓存机制下,前端展示数据非常迅速,及时。虽然前端和WEB后端之间没有使用websocket进行数据传输,而是使用了最笨的定期获取,但丝毫没有影响前端的用户体验。

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

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

相关文章

74hc138电路图汇总分析

74hc138大家应该比较熟悉,关于它的应用电路你了解多少呢?它在电路中是一个什么样的角色定位呢?本文主要为你介绍关于74hc138电路图汇总分析以及74hc138在电路中的作用。 74hc138 74HC138是一款高速CMOS器件,74HC138引脚兼容低功…

【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型

温故而知新,可以为师矣! 一、参考资料 《计算机视觉中的多视图几何-第五章》-Richard Hartley, Andrew Zisserman. 二、针孔模型相关介绍 1. 重要概念 1.1 投影中心/摄像机中心/光心 投影中心称为摄像机中心,也称为光心。投影中心位于一…

职场记7:冲破求职迷雾,踏入新的工作环境

上一篇《职场记6:在国企工作,追逐挑战与成就》 工作日的早晨,在炎炎夏日的照射下,城市仿佛变成了一个巨大的蒸笼。街头巷尾,人群涌动,各种人物形象鲜明,构成了一幅生动的夏日画卷。 老人们手持…

spring aop实际开发中怎么用,Spring Boot整合AOP,spring boot加spring mvc一起使用aop,项目中使用aop

前言:本文不介绍 AOP 的基本概念、动态代理方式实现 AOP,以及 Spring 框架去实现 AOP。本文重点介绍 Spring Boot 项目中如何使用 AOP,也就是实际项目开发中如何使用 AOP 去实现相关功能。 如果有需要了解 AOP 的概念、动态代理实现 AOP 的&…

web架构师编辑器内容-改进字体下拉菜单

前面说到我们可以通过面板配置来更新画布上面的一些属性,如果我们有这样一个需求:在右侧面板配置里面需要查看字体的样式效果我们应该怎么做呢? 我们一开始字体的渲染: const fontFamilyArr [{value: "SimSun","…

在数字电路中,为什么说避免输入信号的缓慢变化,对缓慢变化的信号需要使用施密特触发器输入的器件进行驱动?

在数字电路中,避免输入信号的缓慢变化(如按键复位信号)是非常重要的,因为缓慢变化的信号可能会导致数字逻辑电路的不确定状态和错误操作。施密特触发器(Schmitt Trigger)是一种特殊的电路,它可以解决这个问题。 缓慢变化信号的问题: 噪声敏感性:当输入信号缓慢变化时…

vue事件绑定

vue提供了v-on事件绑定指令,用来辅助程序员为DOM元素绑定事件监听,语法格式如下: v-on:指令可以简写为 注意:原生DOM对象有onclick,oninput,onkeyup等原生事件,替换为vue的事件绑定…

设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式,每一种模式的概念、使用场景和优缺点。

文章目录 前言一、3种模式的概念、使用场景和优缺点简单工厂模式(Simple Factory Pattern):工厂方法模式(Factory Method Pattern):抽象工厂模式(Abstract Factory Pattern)&#xf…

PYQT的使用入门

上一章节:VSCode安装PYQT5-CSDN博客 vscode导航栏右键,新建ui文件

<软考高项备考>《论文专题 - 23 整合管理(1) 》

1 论文基础情况 1.1 各过程写作要点 过程定义、作用写作要点、思路制定项目章程制定项目章程是编写一份正式批准项目并授权项目经理在项目活动中使用组织资源的文件的过程。作用:①明确项目与组织战略目标之间的直接联系;②确立项目的正式地位;③展示组织对项目的…

Python高级语法与正则表达式

Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。 # 1、以写的方式打开文件 with open(1.txt, w) as f:# 2、读取文件内容f.write(hello world) 生成器的创建方…

【Netty】编解码器

目录 Java的编解码Netty编解码器概念解码器(Decoder)编码器(Encoder)编码解码器Codec Java的编解码 编码(Encode)称为序列化, 它将对象序列化为字节数组,用于网络传输、数据持久化或者其它用途。 解码(Decode&#x…

Go中的Context是什么?

在 Go 编程语言(通常称为 Golang)中,术语 "上下文 "指的是上下文包及其定义的上下文类型。上下文包用于跨 API 边界和进程间传输截止日期、取消信号和其他请求范围值。 上下文包的主要目的是管理并发或分布式系统中操作的生命周期…

Python量化投资——金融数据最佳实践: 使用qteasy+tushare搭建本地金融数据仓库并定期批量更新【附源码】

用qteasytushare实现金融数据本地化存储及访问 目的什么是qteasy什么是tushare为什么要本地化使用qteasy创建本地数据仓库qteasy支持的几种本地化仓库类型配置本地数据仓库配置tushare 的API token 配置本地数据源 —— 用MySQL数据库作为本地数据源下载金融历史数据 数据的定期…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)

在这篇文章中虽然实现了能够和多客户端建立连接,并且同时和多个客户端进行通信。 基于多反应堆的高并发服务器【C/C/Reactor】(上)-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135141316?spm1001.2014.3001.5501但是有…

nginx安装letsencrypt证书

1.安装推荐安装letsencrypt证书的客户端工具 官方推荐通过cerbot客户端安装letsencrypt 官方推荐使用snap客户端安装cerbot客户端 apt install snapd snap install --classic certbot 建立certbot软链接:ln -s /snap/bin/certbot /usr/bin/certbot 2.开始安装letse…

速盾网络:高防IP的好处

随着互联网的快速发展,网络安全问题日益突出,越来越多的企业和个人开始关注网络安全防护。其中,高防IP作为一种高效的防御手段,越来越受到用户的青睐。本文将介绍速盾网络高防IP的好处,帮助您了解其优势和应用场景。一…

SuperMap Hi-Fi 3D SDK for Unity基础开发教程

作者:kele 一、背景 众所周知,游戏引擎(Unity)功能强大,可以做出很多炫酷的游戏和动画效果,这部分功能的实现往往不仅仅是靠可视化界面就能够实现的,还需要代码开发。SuperMap Hi-Fi SDKS for …

清风数学建模笔记-插值算法

内容:插值算法 概念: 二.种类 1.牛顿插值法,拉格朗日插值法,两者容易出现龙格现象 2.分段线性插值:与上面两种相比要更好一些,原理是两线之间构成一条直线,在这条直线上插值,除此之外还有分段…

【华为OD题库-104】猴子吃桃-java

题目 题目描述: 孙悟空喜欢吃蟠桃,一天他乘守卫蟠桃园的天兵天将离开了而偷偷的来到王母娘娘的蟠桃园偷吃蟠桃。 已知蟠桃园有棵蟠桃树,第i棵蟠桃树上有Ni个蟠桃,天兵天将将在H(不小于蟠桃树棵数)小时后回来。 孙悟空可以决定他吃蟠桃的速度K…