缓存实现方式

news2024/11/30 8:56:58

为啥需要缓存?

mysql关系型数据库,查询时需要磁盘IO,会消耗系统性能并且耗时,当数据变化量较小,并且响应要快的话,可以考虑使用缓存

服务端缓存方式有哪些?

服务端缓存方式:
①可以使用静态变量(jdk8及以后,静态变量是存在JVM堆上的)
②使用redis跨服务缓存,分布式应用使用redis缓存(键值对)
③使用ehcache缓存框架

代码实现(kotlin代码演示)

方式一:使用静态变量:由于是存在JVM堆上的,所以是全局共享变量,生命周期随着类的加载而加载,类的结束而结束

步骤①:定义一个全局变量
在这里插入图片描述
步骤②:跑定时任务,定时查询,查到的数据赋值给定时任务
在这里插入图片描述

方式二:使用redis跨服务缓存,分布式应用使用redis缓存(键值对)【java】

步骤①:引入redis依赖
在这里插入图片描述
步骤②:在application.properties文件下进行配置
spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=123456
步骤③:编写redis配置类
在这里插入图片描述
步骤④:调用写入读取操作
在这里插入图片描述
在这里插入图片描述

方式三:使用ehcache缓存框架 【kotlin】,在Service层缓存,有了缓存就不走接口查询,直接将缓存的值返回,ehcache支持堆内存储和堆外磁盘存储

步骤①:引入ehcache依赖
在这里插入图片描述
步骤②:yml文件配置
在这里插入图片描述
步骤③:写ehcache管理工具类
在这里插入图片描述
在这里插入图片描述
步骤④:设置key的生成策略在这里插入图片描述
步骤⑤:在Service类加上@CacheConfig
在这里插入图片描述
在方法上加上@Cacheable(cacheNames = [“item1”], sync = true) 改方法的内容需要缓存
在这里插入图片描述
@CacheEvict(value = [“item1”, “item2”, “item3”, “item4”, “item5”, “item6”, “item7”, “item8”, “item9”],allEntries = true) 清空全部缓存
在这里插入图片描述

参考链接:

SpringBoot整合Redis
SpringBoot整合Ehcache

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

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

相关文章

git push/pull 超时问题解决

使用代理,发现git仓库浏览器可以访问到,但是本地 push/pull 时提示超时,这里提供一个方案供参考(亲测有效): 修改系统的DNS为:114.114.114.114

基于java SSM框架的校园二手交易平台设计

一、项目介绍 游客:浏览商品,登录、注册 用户:浏览商品,发布,评论商品,我的订单,收藏,修改个人信息,搜索,回复评论 管理员:商品分类管理&#xff…

基于MATLAB开发AUTOSAR软件应用层模块-part13.AUTOSAR Dictionary-3 编辑AUTOSAR元素-SWC 和PORTS

配置SWC 此处可以配置SWC的名字和类型,类型包含: Application 应用组件 ComplexDiviceDriver 复杂驱动组件 EcuAbstraction ECU 抽象组件 SensorActuator 传感器执行器组件

学会python可以做哪些兼职?

前言 以我差不多四年的 Python 使用经验来看,大概可以按以下这些路子来赚到钱,但编程技能其实只是当中必不可少的一部分,搭配其它技能栈食用风味更佳。 1、爬虫 很多人入门 Python 的必修课之一一定是 Web 开发和爬虫,但这两项…

如何使用Github+picGo搭建图床???

最开始我使用iPic微博图床匿名上传,但是!!!当我不小心上传了隐私文件后,删除特别麻烦(联系新浪客服,提供图片是自己上传的证据才给予处理),因为白嫖图床,总担心挂掉,而且不利于备份。…

独立性能环境的重要性

独立性能环境的重要性 有些同学担心,由于性能测试环境和线上环境配置不一致,会导致线下环境得到的性能结果无法发现足够多的性能问题,无法对线上环境的容量评估/稳定性保障带来足够的参考。其中担心的重点有如下几点: 配置不一致&…

47 岁从华为退休,操作系统老兵转战 OpenHarmony 生态 | 近匠

【CSDN 编者按】开源生态建设作为开源发展的关键,在国内仍缺乏足够的多的成功先例,开源操作系统生态到底该如何建设?本期《近匠》邀请到专注于 OpenHarmony 操作系统生态共建的杨启彬与我们分享他的实践经验。 本期受访嘉宾: 杨启…

软件测试工程师面试如何描述自动化测试是怎么实现的?

软件测试工程师面试的时候,但凡简历中有透露一点点自己会自动化测试的技能点的描述,都会被面试官问,那你结合你的测试项目说说自动化测试是怎么实现的?一到这里,很多网友,包括我的学生,也都一脸…

【车载开发系列】UDS诊断---OBD基础概述

【车载开发系列】UDS诊断—OBD基础概述 UDS诊断---OBD基础概述【车载开发系列】UDS诊断---OBD基础概述一.什么是OBD二.OBD和UDS的区别三.OBD应用功能与应用领域四.OBD的特点有哪些五.OBD的服务概述六.OBD服务中的DTC七.OBD服务中0x03和0x07的区别八.Pending DTC有什么用九.OBD的…

昇腾携手OpenMMLab,支持海量算法仓库的昇腾AI推理部署

摘要:近日,昇腾AI联合浦江实验室,正式实现OpenMMLab算法仓库在昇腾的异构计算架构CANN上的推理部署,目前相关代码已推入MMDeploy 0.10.0版本,并在GitHub正式发布。本文分享自华为云社区《昇腾携手OpenMMLab&#xff0c…

标准库 - Object

一、Object 对象&#xff0c;同时也是一个构造函数。 Object 对象提供了很多操作对象的属性和方法&#xff0c;也是对应的原型。 1.Objcet() 作为函数使用 可以把其他数据类型转为一个包装对象 <script> var a Object("a");// 传入字符串就可以包装为字符串…

面试必备:分库分表经典15连问

前言 大家好&#xff0c;我是田螺。我们去面试的时候&#xff0c;几乎都会被问到分库分表。田螺哥整理了分库分表的15道经典分库分表面试题&#xff0c;大家看完肯定会有帮助的。 公众号&#xff1a;捡田螺的小男孩github地址&#xff0c;感谢每颗star&#xff1a;github 1. 我…

Jmeter随机参数各种搭配

目录&#xff1a;导读 前言 一、两个固定值之间随机生成一个值&#xff0c;应用场景没有限制 二、接下来使用CSV文件按提前写好的值作为参数&#xff0c;执行场景需要提前根据实际情况配置好执行次数 三、在固定的多个值中&#xff0c;随机选取一个值作为参数&#xff0c;执…

Smconf(分布式配置管理框架)概述

Smconf 专注于分布式环境下的配置的统一管理。采用 JavaZookeeperMongodbSpring Boot 开发。目前只支持 Java&#xff0c;其他的使用语言需要通过调用 REST API 来实现。 每个技术人都有一个开源的梦想&#xff0c;那就是自己也能开发出一个让很多人使用的框架。其实分享使用不…

8个巧用iOS备忘录的方法,别浪费了几千块的iPhone手机

你用过ios系统的备忘录吗&#xff1f;是不是只用来记录生活的一些事项呢&#xff1f;如果是这样那就太浪费啦&#xff01;这里分享8个小技巧&#xff0c;快学一学让你的备忘录能物尽其用吧&#xff01;1.笔记-横线与网格大家是不是觉得备忘录的背景光秃秃的&#xff1f;其实是有…

antv/g6基本使用教程

安装 & 引用 在项目中引入 G6 有以下两种方式&#xff1a;npm 引入&#xff0c;CDN 引入。 1 在项目中使用 npm 包引入 Step 1: 使用命令行在项目目录下执行以下命令&#xff1a; npm install --save antv/g6 Step 2: 在需要用的 G6 的 JS 文件中导入&#xff1a; imp…

JSP ssh免疫疫苗管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh免疫疫苗管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S 模式开发。开发环境为TOMCAT7.0…

linux 终端分屏工具 tmux

引言&#xff1a;我们在用 MobaXterm 的时候会 经常遇到窗口不够用的时候&#xff0c;而且切换窗口也比较费时间&#xff0c;所以就需要一个工具&#xff0c;一个终端窗口可以打开多个终端。 sudo apt-get install tmuxtmux输入tmux进入。 上下分屏&#xff1a;ctrl b 再按 &…

【深度学习动手做】Dataset类,读取数据库中带标签的图片

用于将带标签的数据读取&#xff0c;比如我有一个分类“蚂蚁”和“蜜蜂”的任务&#xff0c;其工作目录下有以下&#xff1a; data文件夹、read_data.py ... 其中data文件夹下一级又分为“train”&#xff0c;"val”&#xff0c;然后按照标签分为两个文件夹“ants”&#…

[附源码]Python计算机毕业设计辅导员班级量化管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…