缓存的介绍

相关面试题 :

● 为什么要用缓存?

● 本地缓存应该怎么做?

● 为什么要有分布式缓存?/为什么不直接用本地缓存?

● 为什么要用多级缓存?

● 多级缓存适合哪些业务场景?

缓存思想

空间换时间(索引,集群,读写分离,CDN)

缓存分类

本地缓存

本地缓存的方案

  • JDk自带的concurrentHashMap
  • Guava cache、Spring cache
  • caffeine

优点

简单、快、低依赖

缺点

分布式缓存无法共享

本地缓存容量受设备影响

分布式缓存

使用分布式缓存之后,缓存服务可以部署在一台单独的服务器上

实现

redis和

多级缓存

本地缓存 + 分布式缓存

业务场景

缓存的数据不会经常修改

秒杀活动,访问量大

流程

多级缓存方案中,第一级缓存(L1)使用本地内存(比如 Caffeine)),第二级缓存(L2)使用分布式缓存(比如 Redis)。

多级缓存方案中,第一级缓存(L1)使用本地内存(比如 Caffeine)),第二级缓存(L2)使用分布式缓存(比如 Redis)。

多级缓存一致性怎么实现

Canal + 广播消息,这里简单介绍一下:

1 DB 修改数据:首先在数据库中进行数据修改。

2 通过监听 Canal 消息,触发缓存的更新:使用 Canal 监听数据库的变更操作,当检测到数据变化时,触发缓存更新。

3 同步 Redis 缓存:对于 Redis 缓存,因为集群中只共享一份数据,所以直接同步缓存即可。

4 同步本地缓存:由于本地缓存分布在不同的 JVM 实例中,需要借助广播消息队列(MQ)机制,将更新通知广播到各个业务实例,从而同步本地缓存。

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

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

相关文章

什么是弧形光源

工业检测中的弧形光源是一种专门设计用于机器视觉和自动化检测的照明设备,通常用于提供均匀、高对比度的照明,以增强图像采集质量,便于检测系统识别和分析目标物体的特征。以下是关于工业检测弧形光源的详细介绍: 特点 1均匀照明: 弧形设计能够提供均匀的漫反射光,减少阴…

[每日动态]科技新闻每日信息差2025年2月14日

### 2025年2月14日科技新闻每日信息差 #### 引言 在快速发展的科技领域,信息差是决定个人和企业竞争力的关键因素。2025年2月14日,全球科技界迎来了多项重要进展,从人工智能到量子计算,从医疗科技到太空探索,这些…

Go语言实现单例模式

单例模式 单例模式分为饿汉和懒汉模式,前者是在程序启动的时候就初始化一个单例对象,后者是使用到这个单例的时候,才会初始化一个单例对象。 饿汉模式 package mainimport "fmt"type Singleton struct { }var instance *Singleto…

zyNo.23

SQL注入漏洞 1.SQL语句基础知识 一个数据库由多个表空间组成,sql注入关系到关系型数据库,常见的关系型数据库有MySQL,Postgres,SQLServer,Oracle等 以Mysql为例,输入 mysql-u用户名-p密码 即可登录到MySQL交互式命令行界面。 既然是…

LeapMotion第2代 Unity示范代码(桌面开发)

一、官方地址: 官网:https://www.ultraleap.com/ 驱动下载:https://leap2.ultraleap.com/downloads/leap-motion-controller-2/ docs地址:https://docs.ultraleap.com/xr-and-tabletop/tabletop/unity/getting-started/index.html…

深入剖析推理模型:从DeepSeek R1看LLM推理能力构建与优化

著名 AI 研究者和博主 Sebastian Raschka 又更新博客了。原文地址:https://sebastianraschka.com/blog/2025/understanding-reasoning-llms.html。这一次,他将立足于 DeepSeek 技术报告,介绍用于构建推理模型的四种主要方法,也就是…

使用Cocos Creator制作“打砖块”小游戏:从零开始的详细教程

Cocos Creator是一款强大的游戏开发工具,特别适合2D游戏的开发。本文将以经典的“打砖块”小游戏为例,逐步讲解如何使用Cocos Creator实现这个游戏。我们将从项目创建、场景搭建、脚本编写到最终的游戏发布,详细讲解每一步的实现过程。 1. 环境准备 首先,确保你已经安装了…

vue3常见面试题

当然,以下是关于 Vue 3 的一些常见面试题及其答案: 1. Vue 3 相比 Vue 2 有哪些主要改进? 性能提升:Vue 3 在编译时做了更多的优化,比如静态提升(hoisting static nodes)、事件监听缓存等。更…

Ubuntu 22.04 LTS 安装MinerU

1. 检测是否已安装nvidia驱动 nvidia-smi 如果看到类似如下的信息,说明已经安装了nvidia驱动,可以跳过步骤2 Note CUDA Version 显示的版本号应 > 12.1,如显示的版本号小于12.1,请升级驱动 2. 安装驱动 如没有驱动&#…

DeepSeek 指导手册(入门到精通)

第⼀章:准备篇(三分钟上手)1.1 三分钟创建你的 AI 伙伴1.2 认识你的 AI 控制台 第二章:基础对话篇(像交朋友⼀样学交流)2.1 有效提问的五个黄金法则2.2 新手必学魔法指令 第三章:效率飞跃篇&…

MacOS使用PhpWebStudy搭建PHP开发环境

mac上的PHP开发环境搭建方式有很多, brew, docker, mamp等, 这里使用最近新出的工具PhpWebStudy来搭建mac上的php开发环境 安装 使用brew安装 brew install phpwebstudy 无法使用brew的话, 可以去官网下载最新版本安装 FlyEnv | Powerful Web Server and Environment Mana…

布隆过滤器的原理和应用场景,解决缓存穿透

一、布隆过滤器BloomFilter是什么 布隆过滤器BloomFilter是一种专门用来解决去重问题的高级数据结果。 实质就是一个大型位数组和几个不同的无偏hash函数,无偏表示分布均匀。由一个初值为零的bit数组和多个哈希函数组成,用来判断某个数据是否存在&…

macOs安装nvm

首先确定本机上没有安装nvm 如果之前安装过先卸载 1. 删除 nvm 目录 首先,删除 nvm 所安装的文件目录。默认情况下,nvm 会安装到 ~/.nvm 目录。 运行以下命令删除 nvm 目录: rm -rf ~/.nvm2. 移除 .zshrc 或 .bash_profile 中的 nvm 配置…

uniapp + vite + 使用多个 ui 库

样式冲突 新建了个项目 安装多个 ui 库 发现 uview-plus 和 Ant Design Vue 3.2.20 的 按钮样式 冲突uvuew-plus 的按钮样式 会被 ant 的样式给覆盖解决方式 找到圆满 ant.css 注释 button, html [type"button"], [type"reset"], [type"submit&quo…

【大语言模型】在大语言模型中,user、assistant、system 三种角色的定位和功能有何不同。

在大语言模型(如GPT系列)中,user、assistant、system 是三种核心角色,它们的定位和功能不同,共同构成对话的上下文结构。以下是具体区别和用途: 1. System(系统角色) 定位&#xff…

react中如何获取真实的dom

在 React 中,获取真实的 DOM 元素通常通过 ref 来实现。ref 是一个特殊的属性,用于引用组件或 DOM 元素的实例。你可以通过 ref 获取到组件的真实 DOM 元素或组件实例。 1. 函数组件中的 useRef 在函数组件中,获取 DOM 元素的引用需要使用 …

关于“前端已死”的命题

翻阅知乎论坛,看了各位大佬的解析,从技术发展、市场环境、岗位需求三个维度综合理解这个命题: 1. 技术层面 前端技术生态并未停滞,反而持续迭代升级。HTML/CSS/JavaScript 核心基础未变,但框架(如 Vue、R…

Docker Compose:编排多容器应用

1. 什么是 Docker Compose? Docker Compose 是一个用于定义和管理多容器 Docker 应用的工具。它通过一个简单的配置文件(docker-compose.yml),让你能够在一个命令下启动、停止和管理多个容器。这使得在开发、测试和生产环境中,管理复杂的应用变得更加简单。 Docker Comp…

(2025)深度分析DeepSeek-R1开源的6种蒸馏模型之间的逻辑处理和编写代码能力区别以及配置要求,并与ChatGPT进行对比(附本地部署教程)

(2025)通过Ollama光速部署本地DeepSeek-R1模型(支持Windows10/11)_deepseek猫娘咒语-CSDN博客文章浏览阅读1k次,点赞19次,收藏9次。通过Ollama光速部署本地DeepSeek-R1(支持Windows10/11)_deepseek猫娘咒语https://blog.csdn.net/m0_70478643/article/de…

Ubuntu安装geteck/jetlinks实战:源码启动

这个还是很复杂的,建议使用docker即可。 参考 使用源码启动JetLinks | JetLinks 物联网基础平台 安装Ubuntu虚拟机(略)安装JDK8编译Redis安装mysql ubuntu安装MySqL server-CSDN博客 初次使用,不要安装ElasticSearch下载源码…