建设网站费用计入什么科目山东企业展厅设计公司

news/2025/10/7 12:16:12/文章来源:
建设网站费用计入什么科目,山东企业展厅设计公司,网站黏度,浙江省建设厅网站首页缓存技术在现代Web开发中至关重要#xff0c;尤其是在高并发的环境中#xff0c;缓存能够有效减少数据库访问压力、提高系统性能。Redis作为最流行的内存数据存储系统之一#xff0c;常用于缓存管理。本节将讲解如何在Spring Boot项目中集成Redis#xff0c;实现缓存管理尤其是在高并发的环境中缓存能够有效减少数据库访问压力、提高系统性能。Redis作为最流行的内存数据存储系统之一常用于缓存管理。本节将讲解如何在Spring Boot项目中集成Redis实现缓存管理并深入探讨Redis的基础、缓存失效策略以及如何使用Redis构建分布式缓存。 1. Redis基础与Spring Data Redis 1.1 Redis简介 Redis是一个开源的内存数据结构存储系统它可以用作数据库、缓存以及消息队列系统。Redis支持多种数据结构包括字符串String、哈希Hash、列表List、集合Set、有序集合Sorted Set等。Redis的特点是高效、持久化支持、发布订阅机制和简单的API。 1.2 Spring Data Redis Spring Data Redis是Spring Data项目的一部分旨在简化Redis的使用它封装了Jedis和Lettuce等Redis客户端并提供了与Spring的其他部分如Spring Boot、Spring Cache等无缝集成的功能。通过Spring Data Redis可以轻松实现Redis的存取操作支持常见的数据结构操作。 1.3 配置Redis连接 首先我们需要在Spring Boot项目中配置Redis连接。在application.properties或application.yml文件中进行以下配置 spring:redis:host: localhostport: 6379password: # 如果有密码的话可以配置timeout: 3000jedis:pool:max-active: 10max-idle: 5min-idle: 1max-wait: 2000 这里的配置包括Redis的主机地址、端口、连接池配置等。Spring Boot通过spring-boot-starter-data-redis自动装配了Redis的相关组件。 1.4 RedisTemplate与StringRedisTemplate Spring Data Redis提供了两个常用的类RedisTemplate和StringRedisTemplate。 RedisTemplate: 用于支持所有类型的Redis数据结构。StringRedisTemplate: 继承自RedisTemplate专门用于操作字符串类型的数据。 通常情况下推荐使用StringRedisTemplate处理简单的字符串缓存RedisTemplate适合处理复杂的数据类型。 2. 在项目中集成Redis缓存 在Spring Boot中集成Redis缓存十分简单Spring Cache提供了对Redis的支持。接下来我们将实现一个简单的缓存管理系统使用Redis作为缓存存储。 2.1 添加依赖 在pom.xml中添加Spring Data Redis和缓存相关的依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId /dependency 2.2 开启缓存支持 在主启动类中例如Application.java开启Spring缓存支持 SpringBootApplication EnableCaching // 开启缓存支持 public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} } 2.3 使用缓存注解 使用Cacheable注解实现缓存。当某个方法被调用时Spring首先会检查缓存中是否已有数据。如果有直接返回缓存数据如果没有执行方法并将结果存入缓存。 Service public class ProductService {Cacheable(value products, key #productId)public Product getProductById(Long productId) {// 模拟数据库查询return productRepository.findById(productId).orElseThrow(() - new RuntimeException(Product not found));} } 在此示例中Cacheable会根据productId作为缓存的键将返回的Product对象存储在products缓存中。如果同样的productId再次被请求Spring会直接从Redis中读取数据。 2.4 缓存管理与清除 除了缓存数据我们还可以使用CachePut来更新缓存使用CacheEvict来清除缓存。 CachePut(value products, key #product.id) public Product updateProduct(Product product) {return productRepository.save(product); }CacheEvict(value products, key #productId) public void deleteProduct(Long productId) {productRepository.deleteById(productId); } CachePut: 在每次方法执行后都更新缓存。CacheEvict: 清除缓存当缓存失效时会重新加载数据。 3. 缓存失效策略与分布式缓存 缓存管理不仅仅是将数据存入缓存还需要考虑缓存的失效策略、过期时间设置以及如何实现分布式缓存。 3.1 缓存失效策略 Redis支持多种缓存失效策略常见的有以下几种 设置过期时间使用expire命令设置缓存过期时间。当缓存超过指定时间后Redis会自动删除该缓存项。LRULeast Recently Used淘汰策略Redis支持设置最大内存限制当缓存占用内存达到上限时Redis会根据LRU算法淘汰最久未使用的数据。定期删除Redis会定期扫描缓存删除已经过期的键。 在Spring中可以通过Cacheable的ttl过期时间来配置缓存失效时间。例如缓存15分钟 Cacheable(value products, key #productId, ttl 900) public Product getProductById(Long productId) {return productRepository.findById(productId).orElseThrow(() - new RuntimeException(Product not found)); } 3.2 分布式缓存设计 在分布式系统中缓存通常不仅仅部署在单个Redis实例上而是需要支持多个Redis节点。Spring Boot通过Redis集群、Redis哨兵等方案支持分布式缓存。 Redis集群通过Redis Cluster可以实现数据的水平分片确保缓存可以跨多个Redis节点分布。Redis哨兵Redis Sentinel可以实现高可用性和自动故障切换。 为了支持分布式缓存我们可以使用Redis Cluster或哨兵的配置来确保高可用性。在application.yml中配置Redis集群 spring:redis:cluster:nodes:- 127.0.0.1:7000- 127.0.0.1:7001- 127.0.0.1:7002password: yourpassword Spring Boot会自动识别Redis集群配置连接多个Redis节点并进行缓存数据的分布式存储和管理。 3.3 缓存穿透与击穿解决方案 在实际应用中缓存穿透和缓存击穿是两个常见问题 缓存穿透指查询不存在的数据直接访问数据库而绕过缓存。解决方法是使用布隆过滤器Bloom Filter来判断数据是否存在。缓存击穿指缓存中的数据过期后多个请求同时访问该数据导致大量并发请求直接访问数据库。解决方法是使用互斥锁或Cacheable的sync参数确保只有一个请求去加载数据。 总结 本文详细介绍了如何在Spring Boot中集成Redis缓存管理。通过Spring Data Redis能够快速地将Redis引入到Spring Boot应用中实现缓存功能。通过使用Cacheable、CachePut、CacheEvict等注解我们能够方便地管理缓存的增删改查。 此外我们还讨论了Redis的缓存失效策略以及如何设计分布式缓存系统。对于高并发、大规模数据的应用Redis提供的各种缓存策略和高可用性解决方案能够显著提高系统的性能和稳定性。通过合理设计缓存失效策略和处理缓存穿透、缓存击穿等问题我们能够构建一个高效的缓存管理系统。 关于作者 15年互联网开发、带过10-20人的团队多次帮助公司从0到1完成项目开发在TX等大厂都工作过。当下为退役状态写此篇文章属个人爱好。本人开发期间收集了很多开发课程等资料需要可联系我

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

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

相关文章

数据结构与算法学习笔记(Acwing 提高课)----动态规划树形DP - 详解

数据结构与算法学习笔记(Acwing 提高课)----动态规划树形DP - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

注册网站卖钱最多的人中山网站建设哪家便宜

我刚刚开始为Isis开发 OpenJPA对象库 。 在一般情况下,可以在persistence.xml文件中注册实体类型。 但是,Isis是一个框架,可以构建自己的元模型,并且可以自行确定哪些类构成实体。 因此,我不想强​​迫开发人员重复自己…

自己做网站还能挣钱吗家电网站建设

建立openstack quantum开发环境 作者:张华 发表于:2012-4-6 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 上篇中讲了如何建立openstack的最小开发环…

可视化大屏工具对比:GoView、DataRoom、积木JimuBI、Metabase、DataEase、Apache Superset 与 Grafana - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

[特殊字符] FFmpeg 学习笔记 - 详解

[特殊字符] FFmpeg 学习笔记 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco…

.NET周刊【9月第3期 2025-09-21】

国内文章 Runtime Async - 步入高性能异步时代 https://www.cnblogs.com/hez2010/p/19097937/runtime-async 本文详细阐述了同步与异步代码的区别以及 async/await 的机制。同步代码阻塞线程,异步代码则不阻塞线程,依…

通过实验直观理解神经网络:ReLU网络与几何解释

本文通过可视化实验探索ReLU神经网络的工作机制,从几何角度分析神经元如何通过折纸般的折叠操作逼近复杂函数,并讨论训练过程中的优化现象与边缘学习难题。ADD / XOR / ROL:帮助我更好理解神经网络的实验(第1篇) …

无锡网站公司哪家好网站访问慢的原因

基于springBoot旅游管理系统设计与实现 一、摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游管理系统就是在这样的大环境下诞生,其可以帮助…

网站专题设计稿免费网站建设软件推荐

第一部分:安装k8s 1.28.2: 注意:因国内无法访问Google ,需要使用阿里云进行安装 系统准备 更新系统:确保你的Ubuntu系统是最新的。运行以下命令来更新系统: sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y安装必要的工具:安装curl和其他可能需…

CCPC2023哈尔滨 游记(VP)

有史以来打的最差的一场区域赛 VP,$2t$ 获得铁尾。省流 有史以来打的最差的一场区域赛 VP,\(2t\) 获得铁尾。9.30 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 要放国庆假期,简和叶都说要提前走,这场在开…

2025教练技术行业深度剖析:目标人群、费用与品牌选择

在当今竞争激烈的商业环境中,教练技术作为一种提升个人和团队能力的有效工具,正逐渐受到广泛关注。那么,排名靠前的教练技术课程的目标人群是谁?费用大概多少?哪些品牌靠谱且性价比高呢?让我们一同深入探讨。 目…

统计备注

统计备注一些基础的统计学备注笔记统计备注 1、高斯分布图解

单例模式的类和静态方法的类的区别和使用场景 - 指南

单例模式的类和静态方法的类的区别和使用场景 - 指南2025-10-07 12:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

LGP9871 [NOIP 2023] 天天爱打卡 学习笔记

LGP9871 [NOIP 2023] 天天爱打卡 学习笔记 Luogu Link 前言 经典题了属于是。写 \(\texttt{LGP12581}\) 时特此来回顾。 当年是有多么糖啊。希望现在只有棒棒没有糖吧。 题意简述 小 \(\text{T}\) 同学非常热衷于跑步。…

【OpenGL ES】Windows上OpenGL环境搭建

1 前言 ​ Windows 的图形 API 是 DirectX,对 OpenGL 的支持比较有限(系统自带的 opengl32.dll 仅支持 OpenGL 1.1 版本),因此在 Windows 上进行OpenGL 开发时,通常需要借助第三方库或工具来支持更高版本的 Op…

虚拟现实教育终端科技方案——基于EFISH-SCB-RK3588的全场景国产化替代

虚拟现实教育终端科技方案——基于EFISH-SCB-RK3588的全场景国产化替代pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &…

强化学习系统性学习笔记(二):策略优化的理论基础与算法实现

强化学习系统性学习笔记(二):策略优化的理论基础与算法实现策略优化的理论基础与算法实现 3.2 REINFORCE: 最早的策略梯度算法 在完成策略梯度定理的推导后,我们获得了梯度的理论形式: \[\nabla_\theta J(\pi_\thet…

惠州做公司网站广州软件开发培训班

RK3568测试tdd 一、门禁取包二、烧录三、跑tdd用例四、查看结果参考资料 一、门禁取包 右键复制链接,粘贴下载;解压到文件夹; 二、烧录 双击\windows\RKDevTool.exe打开烧写工具,工具界面击烧写步骤如图所示: 推荐…

完整教程:WordPress 6.5版本带来的新功能

完整教程:WordPress 6.5版本带来的新功能pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

网站维护的具体问题wordpress 代理插件

需求&#xff1a;点击button按钮&#xff0c;录入成功后&#xff0c;页面上的input框自动聚焦&#xff0c;快速进行下一次录入&#xff0c;提高效率 开始尝试了几种方法都没有成功 一、首先想到的用vue指令 v-focus&#xff0c;然而没有成功 <Input v-model"book.isbnO…