【数据产品】缓存设计

news2024/10/8 8:11:04

背景:为什么需要做缓存?

我所做的产品的指标设计越来越复杂,查询性能也随之下降。因此需要增加缓存层, 以提高接口查询效率。

哪些层需要做缓存?

随着指标系统的应用,该产品的查询逻辑也越来越简单,无非就是API层生成SQL,然后调用Metric-Server执行查询,返回ListMap,然后API层再解析成前端需要的对应数据结构。

(该服务确实经历过几次大改版,从传统的api调service再到微服务拆分成多个域,再到如今的api调metric-server的指标配置方式,整个过程真是应了那句古话:天下大势,合久必分,分久必合)

在这里插入图片描述
从上图可以看见,能做缓存的层有两个,一个是API的接口层,二是Metric-server的查询层。

我们先从底层往上做缓存,这样可复用的查询就越多。

缓存的粒度?

缓存主要是减轻数据库DB的压力。

日周维度理论上是不需要缓存的,因为日周查询的数据量不会太大,其次就是日周数据每天或每七天就会发生变化,缓存命中率可能不很高,低命中率的缓存是一种资源浪费。

因此,优先考虑月季年进行缓存。

但对于日维度等频繁查询的数据也应进行缓存,比如首页概览页面等,这种页面可以考虑请求合并。

缓存的数据?

因为我们现在都是一个SQL对应一个list这种查询方式,因此我们可以选择对SQL生成唯一MD5,然后对List进行缓存。

那么什么样的SQL需要缓存呢?(总结就是对数据库产生压力的sql)

一是查询慢的,二是查询次数多的。

因此,我们可以设定一个标准:

当 【查询时间 > x秒 && 查询次数 > x次 】时,进行数据缓存。

或者

当【查询次数 > x次】时,也进行缓存。

缓存的方式?

  1. 强制缓存(请求合并):对于一些概览页面,每次进入App会频繁调用,对于这部分数据,可以强制缓存。

  2. 主动缓存:对于未强制指定缓存的业务,查询慢且频繁调用,主动进行缓存。

  3. 预测缓存:对于1和2的中的SQL,如果新的表回流任务更新,则提前预测查询(这里的缓存阈值可以与1、2不同),进行缓存。

缓存的方案?

在这里插入图片描述

缓存的监控

缓存的监控同样也很重要,一方面是监控每天缓存情况,保证缓存正常运行;另一方面,监控redis数据库容量,保证不被打满,设置合理的缓存阈值。

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

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

相关文章

二分查找核心思路--单调性--极值

在最初的二分查找中,我们将一组数据按大小排序,然后根据arr[mid]与要查找的k的大小比较,从而每次去掉一半的数字,使时间复杂度简化为O(logN)。 排序本质上是让数据的单调性统一,变为单增或单减…

spring中的JSR-303统一校验

1.在前后端的传输参数的过程中数据在何处校验? 在前后端都需要进行校验,只是分工不同. 2.各个层的校验内容: 1.Controller层主要负责校验残水的合法性,包括: 必填的参数字段,数据格式的校验 2.Service层的业务校验是审核业务中的规则的相关内容,比如:课程已经审核通过所以提…

vue3 为何比 vue2 快

vue3 为何比 vue2 快 测试环境:https://vue-next-template-explorer.netlify.app/ 1、proxy 响应式 vue3 优缺点: 深度监听性能更好可监听 新增 / 删除 属性可监听数组变化Proxy 能规避 Object.defineProxy 的问题Proxy 无法兼容所有浏览器&#xff…

OAuth2介绍

目录 一、什么是OAuth2 二、OAuth2中的角色 三、认证流程 四、令牌的特点 五、OAuth2授权方式 授权码 隐藏方式 密码方式 凭证方式 一、什么是OAuth2.0 概念:第三方授权解决方案 OAuth2.0是目前使用非常广泛的授权机制,用于授权第三方应用获取…

[NRF52] mesh DFU

mesh DFU升级过程:完整流程:以前nRF SDK DFU的实现是通过nRF51 Dongle配合主机nRF connect工具,且借助Secure DFU的后台式更新速率较快(见另一篇笔记),现在的nRF mesh DFU分角色,全都由DK充当&a…

什么是单体应用?什么是微服务?

Monolith(单体应用), 也称之为单体系统或者是 单体架构 。就是一种把系统中所有的功能、模块、组件等耦合在一个应用中应用最终打成一个(war,jar)包使用一个容器(Tomcat)进行部署,通常一个应用享用一个数据库。 也就是将所有的代码…

Java版数据结构与算法笔记

文章目录一、数据结构与算法概述及题目1、数据结构和算法的关系2、线性结构与非线性结构Ⅰ-线性结构Ⅱ-非线性结构3、经典面试题Ⅰ-字符串匹配问题:Ⅱ-汉诺塔游戏Ⅲ-八皇后问题:Ⅳ-马踏棋盘算法4、几个实际编程中遇到的问题Ⅰ-字符串替换问题Ⅱ-一个五子棋程序Ⅲ-约…

这家芯片企业,从创立之初就用 Authing 管理身份

在德州仪器和苹果的经验,让我深知统一身份管理要从 Day 1 做起。——Alpha Cen 联合创始人 & CEO 王璠 案例亮点: 打通 2000 主流应用、满足芯片初创企业统一身份需求 一周快速上线,产品开箱即用,后续无需费力运维 基于协同…

Pytorch安装及环境配置详细教程(CUDA版本)

文章目录前言一、查看GPU支持的CUDA版本二、安装CUDA三、确定torch、torchvision和python版本四、安装anaconda五、安装torch和torchvision前言 安装cuda版本的pytorch时踩了不少坑,网上安装pytorch的版本很多,一般的教程都是到pytorch的官网&#xff0…

相比传统专线网络,爱快、飞连等主流SD-WAN方案好在哪里?

当企业发展至一定的规模后,移动办公、异地办公会逐渐成为刚需,这就对企业的网络架构提出了新的挑战。 一般来说,企业在发展中所遇到的这些新增的网络需求,有两种比较常见的解决方案,其中之一是专线连接 。专线虽然简单…

【Unity3D插件】Build Report Tool插件,Build报告,优化包体,查看资源占用

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 本篇文章介绍一下Build Report Tool插件的使用。 Build Repor…

在Visual Studio中调试Linux控制台程序

最近,Visual Studio 2022 17.5 预览版3 面向广大 Linux 开发者提供了一项新特性:在 Visual Studio 集成的终端中调试 C Linux 控制台程序。 如需了解更多关于集成终端的功能以及它在 Visual Studio 中的工作原理,请参考我们之前的一篇文章: I…

Linux系统安装Hadoop步骤详解

一、 安装新的虚拟机。 配置根据电脑内存自由处理,一般来说,虚拟机内存设为电脑内存一半 二、打开虚拟机,设置语言,时区,硬盘分区,密码,用户等 三、修改ip地址,连接xshell 3.1关闭…

Acer传奇Go电脑开机几分钟就会蓝屏怎么重装系统?

Acer传奇Go电脑开机几分钟就会蓝屏怎么重装系统?有用户使用的Acer传奇Go电脑出现了一些系统故障,电脑正常开机使用几分钟之后,马上就会出现蓝屏的情况,导致无法正常的使用。那么这个情况如何去重装系统呢?来看看以下的…

在产业互联网时代,以生态和边界为代表的有限市场的瓜分业已完成

在这样一个过程中,阿里们更多地思考的是,如何与产业结合,而非独立于产业之外,仅仅只是做一个旁观者和第三方。无论是它们投身到物流、制造、能源化工等行业之中,还是它们对这些产业的传统玩家们深度赋能,几…

第三章 TCG 规范解读【嵌入式工作组】【工业工作组】

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

Elasticsearch:彻底理解 Elasticsearch 数据操作

Elasticsearch 中有四种基本的数据操作。 每个操作都有自己的资源需求。每个用例都使用这些操作,但它们会优先于某些操作。 Index:在这里被用做动词,而不是其名词索引。处理文档并将其存储在索引中以供将来检索。Delete:从索引中…

【攻防世界】easyphp

废话不多说,打开环境就是一大段的php代码,对于我一个小白来说,还是难阿!只能一点点琢磨构造payload的思路,当然也是在网上参考了别人的wp。记录下来也为了加深自己的印象,有事没事都能翻一翻,温…

快速入门OAuth2

1. 什么是OAuth2.0OAuth2.0是目前使用非常广泛的授权机制,用于授权第三方应用获取用户的数据。举例说明:用户可以通过选择其他登录方式来使用gitee,这里就使用到了第三方认证。来自RFC 6749OAuth 引入了一个授权层,用来分离两种不…

2023年Verasity路线图深度分析

Verasity最近发布了迄今为止最详细和雄心勃勃的2023年路线图之一。它主要集中在VeraViews的商业目标,以及VeraCard的推出,它充满了产品更新和令人兴奋的新功能,既为我们的企业对企业(B2B)产品,也为你&#…