自学网站有哪些自学网关键词优化公司排名

news/2025/9/22 17:16:40/文章来源:
自学网站有哪些自学网,关键词优化公司排名,wordpress首页如何调用最新文章评论标签云文章分类等代码,最好的看vr影片的设备前言 当你的应用程序需要一个快速、可扩展的内存数据库时#xff0c;Redis是一个非常流行的选择。通过将Redis与Spring Boot集成#xff0c;你可以轻松地利用Redis的功能#xff0c;例如缓存、会话存储和消息队列等#xff0c;从而提升应用程序的性能和可伸缩性。 在本教…前言 当你的应用程序需要一个快速、可扩展的内存数据库时Redis是一个非常流行的选择。通过将Redis与Spring Boot集成你可以轻松地利用Redis的功能例如缓存、会话存储和消息队列等从而提升应用程序的性能和可伸缩性。 在本教程中我们将深入探讨如何在Spring Boot项目中整合Redis。我们将学习如何配置Redis连接、使用Spring Data Redis来进行数据访问操作以及如何利用Redis作为缓存来提高应用程序的效率。无论你是刚刚接触Spring Boot还是已经有一定经验这篇教程都将为你展示如何利用Redis为你的应用程序增添强大的功能。 通过本教程的学习你将对Spring Boot与Redis的整合有一个清晰的理解并能够在实际项目中应用这些知识。让我们一起开始探索Spring Boot与Redis这个强大组合带来的无限可能吧 一、前期准备 1、新建项目结构如下 2、导入依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- 使用 jackson 序列化器需要依赖JACKSON包 --dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource11/sourcetarget11/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationmainClassedu.nf.ch09.Ch09Application/mainClassskiptrue/skip/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build 这段代码是一个基于Spring Boot的项目的pom.xml文件其中包含了该项目的依赖管理和构建配置。 依赖 spring-boot-starter-data-redis这是Spring Boot提供的用于集成Redis的starter可以方便地进行Redis数据库访问。jackson-databind这是Jackson库的核心依赖用于实现Java对象与JSON之间的序列化和反序列化操作。spring-boot-starter-test这是Spring Boot提供的用于单元测试的starter包含了常用的测试框架和工具。lombok这是一个Java库用于简化Java代码的编写。它提供了一些注解如Data、Getter、Setter等可以自动生成getter、setter方法等。 依赖管理 spring-boot-dependencies这是Spring Boot提供的依赖管理BOMBill of Materials文件用于管理项目中使用的Spring Boot相关依赖的版本。 构建配置 maven-compiler-plugin这是Maven的编译插件用于配置项目的编译选项。在这里设置了Java的源码版本和目标版本为11并指定了编码格式为UTF-8。spring-boot-maven-plugin这是Spring Boot的Maven插件用于支持将Spring Boot应用程序打包成可执行的JAR文件。在这里配置了主类的名称和打包方式为repackage。 通过以上的配置可以管理项目的依赖关系并使用Maven进行项目的构建和打包操作。同时该项目还集成了Spring Boot、Redis和Lombok等技术以便开发和测试Spring Boot应用程序。 二、配置 RedisConfig 配置类 Configuration public class RedisConfig {/*** 自定义 RedisTemplate* param connectionFactory* return*/Beanpublic RedisTemplateString,Object redisTemplate(RedisConnectionFactory connectionFactory){RedisTemplateString,Object template new RedisTemplate();template.setConnectionFactory(connectionFactory);// 设置 key 的序列化器template.setKeySerializer(RedisSerializer.string());template.setHashKeySerializer(RedisSerializer.string());// 设置 value 的序列化器template.setValueSerializer(RedisSerializer.json());template.setHashValueSerializer(RedisSerializer.json());return template;}}这段代码是一个自定义RedisTemplate的配置类。在Spring Boot中可以通过自定义配置类来创建和配置自定义的Bean。 首先使用Configuration注解标识该类是一个配置类Spring Boot会在启动时加载并应用该配置。 然后在redisTemplate()方法上使用Bean注解表示将该方法返回的对象注册为一个Bean并由Spring容器进行管理。 在redisTemplate()方法中通过参数RedisConnectionFactory获取到Redis连接工厂作为创建RedisTemplate的参数。 接着创建一个RedisTemplate对象并将连接工厂设置为其连接工厂。 然后通过调用setKeySerializer()和setValueSerializer()方法分别设置key和value的序列化器。在这里使用了RedisSerializer的静态方法string()和json()来获取String和JSON的序列化器。 最后返回创建的RedisTemplate对象。 通过自定义RedisConfig类可以创建一个自定义的RedisTemplate并对其进行相关配置例如设置序列化器等。在其他需要使用RedisTemplate的地方可以直接注入该Bean来进行操作。 需要注意的是为了让Spring Boot能够正确识别和加载自定义RedisTemplate需要将RedisConfig类所在的包路径包含在ComponentScan或SpringBootApplication注解中。或者将RedisConfig类放在主配置类如Application类所在的子包下这样可以自动扫描到该配置类。 三、配置 yml  spring:# 配置 redis 配置redis:# 指定使用第几个数据库database: 0# 主机地址host: 127.0.0.1# 端口号port: 6379# 指定超时时间timeout: 2000 这段配置是用来配置Spring Boot应用程序连接Redis的相关参数。 在配置文件中以spring.redis为前缀可以设置以下参数 database指定要使用的Redis数据库默认为0。如果应用程序需要访问多个数据库可以通过修改此值来切换数据库。 host指定Redis服务器的主机地址。在这里设置为127.0.0.1表示本地主机。 port指定Redis服务器的端口号。默认情况下Redis服务器使用6379作为默认端口。 timeout指定连接到Redis服务器的超时时间单位为毫秒。如果连接在指定的时间内没有响应将会抛出连接超时异常。 通过在配置文件中设置这些参数应用程序将会使用指定的主机地址、端口号和超时时间来连接到Redis服务器。这样在应用程序中就可以直接使用自动装配的RedisTemplate进行操作。 需要注意的是配置文件的格式可能会根据不同的配置方式而有所差异。上述示例是使用YAML格式的配置文件如果你使用的是其他格式的配置文件可能需要做相应的调整。 四、新建一个 User 实体类 Data AllArgsConstructor NoArgsConstructor public class User implements Serializable {private Integer id;private String userName;}这段代码定义了一个User类该类具有以下特点 使用了Data注解它是Lombok库提供的一个注解用于自动生成getter、setter、toString、equals、hashCode等常用方法。 使用了AllArgsConstructor注解它是Lombok库提供的一个注解用于生成一个包含所有参数的构造函数。 使用了NoArgsConstructor注解它是Lombok库提供的一个注解用于生成一个无参构造函数。 实现了Serializable接口表示该类可以在网络中进行传输或在磁盘上进行存储这通常用于对象的序列化和反序列化操作。 该User类有两个属性 id表示用户的ID类型为Integer。 userName表示用户名类型为String。 通过使用Lombok库提供的注解可以简化Java类的编写自动生成常用的方法和构造函数减少了冗余的代码。同时实现Serializable接口可以让User类的对象在不同的环境中进行传输和持久化存储。 五、操作 redis 1、返回 String Service RequiredArgsConstructor public class UserService {/*** 默认装配的是 StringRedisTemplate 用于操作字符串*/private final StringRedisTemplate template;/*** key 的前缀*/private final static String PREFIX user:;/*** 返回 String* param id* return*/public String getUser(Integer id){if (!template.hasKey(PREFIX id)){// 保存到 Redistemplate.opsForValue().set(PREFIX id,user1);// 设置过期时间template.expire(PREFIX id,1800, TimeUnit.MINUTES);}return template.opsForValue().get(PREFIX id);}}这段代码定义了一个名为UserService的服务类其中包含以下方法 getUser(Integer id)该方法接受一个参数id表示要获取用户信息的ID。如果Redis中存在该用户的信息则直接从Redis中获取并返回否则将用户信息保存到Redis中并设置过期时间为30分钟最后再返回用户信息。 在该服务类中使用了Service注解表示将该类标记为一个服务类并由Spring容器进行管理。 在构造函数上使用了RequiredArgsConstructor注解它是Lombok库提供的一个注解用于生成一个包含所有final成员变量的构造函数并自动进行依赖注入。在这里使用了StringRedisTemplate类的实例作为依赖注入的参数表示将其注入到UserService类中。 在getUser()方法中首先判断Redis中是否存在指定的key如果不存在则将用户信息保存到Redis中并设置过期时间为30分钟。最后从Redis中获取用户信息并返回。 通过将业务逻辑封装在服务类中可以使得业务逻辑与具体的实现细节解耦方便进行单元测试和维护。同时使用StringRedisTemplate类来操作Redis可以简化对Redis的操作提高开发效率。  2、返回一个对象 Service RequiredArgsConstructor public class UserService {private final RedisTemplateString, Object template;/*** key 的前缀*/private final static String PREFIX user:;/*** 返回 对象* param id* return*/public User getUser(Integer id){if (!template.hasKey(PREFIX id)){User user new User(id,qiu);// 保存到 Redistemplate.opsForValue().set(PREFIX id,user);// 设置过期时间template.expire(PREFIX id,1800, TimeUnit.SECONDS);}return (User) template.opsForValue().get(PREFIX id);}}解释如下 Service注解表示这是一个Spring的服务组件用于处理业务逻辑。RequiredArgsConstructor注解是Lombok库提供的注解用于生成带有必需参数的构造函数。RedisTemplateString, Object是一个用于操作Redis的模板类其中String表示Redis的key的类型Object表示Redis的value的类型。PREFIX是一个常量用于设置Redis中存储用户对象的key的前缀。getUser()方法用于获取用户对象。首先它会检查Redis中是否存在指定key如果不存在则创建一个新的User对象并将其保存到Redis中。同时还设置了该key的过期时间为1800秒。最后通过模板类的opsForValue().get()方法从Redis中获取用户对象并返回。 通过使用这个UserService类你可以在获取用户对象时先尝试从Redis缓存中获取如果缓存中不存在则去数据库中查询并将结果存入Redis缓存以提高查询性能和减轻数据库负载。 3、测试 1返回字符串 Testvoid contextLoads() {String user service.getUser(1000);log.info(user);}运行结果 2返回对象 Testvoid contextLoads() {User user service.getUser(2);log.info(user.getUserName());}运行结果 六、SpringBoot 整合 Redis 的好处  Spring Boot 整合 Redis 有以下几个好处 缓存支持Redis 是一种高性能的缓存数据库通过将数据存储在 Redis 中可以大大提高系统的读取性能。Spring Boot 提供了对 Redis 的无缝集成可以方便地使用 Redis 作为缓存存储。 分布式锁支持在分布式系统中为了保证数据的一致性和避免并发冲突常常需要使用分布式锁。Redis 提供了原子操作和特定数据结构如 Redisson来实现分布式锁。通过 Spring Boot 整合 Redis可以方便地使用 Redis 实现分布式锁确保多个节点之间的数据访问的互斥性。 会话管理支持在 Web 应用程序中会话管理是非常重要的功能。通过 Spring Session 和 Redis 结合使用可以将会话数据存储在 Redis 中实现分布式环境下的会话共享提高系统的可伸缩性和稳定性。 发布/订阅支持Redis 提供了发布/订阅模式可以实现消息的广播和订阅。通过 Spring Boot 整合 Redis可以方便地使用 Redis 的发布/订阅功能实现消息的异步通信和事件驱动。 数据持久化支持除了作为缓存数据库Redis 还可以作为持久化存储数据库使用。通过 Spring Boot 整合 Redis可以方便地将数据持久化到 Redis 中并进行读取和查询。 综上所述Spring Boot 整合 Redis 可以提供缓存支持、分布式锁支持、会话管理支持、发布/订阅支持和数据持久化支持增强了系统的性能、可伸缩性和稳定性使开发人员可以更方便地利用 Redis 提供的功能和特性。

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

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

相关文章

洛谷题单指南-进阶数论-P1516 青蛙的约会

原题链接:https://www.luogu.com.cn/problem/P1516 题意解读:长L的环形数轴,初始A在x坐标、一次跳m米,B在y坐标、一次跳n米,问最少跳几次AB相遇。 解题思路: 1、欧几里得算法 欧几里得算法(Euclidean Algorithm…

electron中的几个概念

这里记录一下,学习用┌─────────────────────────────────────────┐│ 主进程 (Main Process) ││ - main.js ││ …

仿网站wordpress 整合ckplayer

前言 JSON 平时大家都会用到,都不陌生,今天就一起来实现一个 JSON 的可视化工具。 大概长成下面的样子: 树展示 相比于现有的一些 JSON 格式化工具,我们今天制作的这个小工具会把 JSON 转为树去表示。其中: 橙色标…

电子商务网站建设阶段连云港网站建设推广

MySQL:Explain执行计划 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 认识explain EXPLAIN SELECT * FROM user_info i LEFT JOIN user_grade g on i.id …

网站推广塔山双喜wordpress评论qq

计算机是现代社会中不可或缺的工具,而CPU(中央处理器)则是计算机的核心组件。CPU负责执行指令和控制计算机的各种操作,它的性能直接影响着计算机的速度和效率。 1. CPU的基本结构 CPU通常由以下几个主要组成部分构成&#xff1a…

外贸网站推广策划wordpress墨客吧

一、什么是Hooks函数? 想象一下,你在做饭,有一些调料你经常会用到,比如盐、酱油和辣椒。每次做饭时,你都会从柜子里拿出这些调料。如果你每次用完都把它们随便放在厨房的某个角落,下次做饭时就可能找不到它…

学校网站怎么做的好坏浙江网架公司

v-viewer简介 v-viewer 是一个 Vue 组件&#xff0c;用于显示图片和其他媒体内容的全屏查看器。它基于 Viewer.js&#xff0c;一个强大的图片查看库。 以下是一个基本的使用示例&#xff1a; <template><div v-viewer><img src"image1.jpg" />&…

做维修家具广告在哪个网站好北京市网站维护公司

初识国际化和ResourceBundle这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念&#xff0c;两者都是一起出现的。可以说&#xff0c;国际化的目的就是为了实现本地化&#xff0c;详细的介绍可以看本文的最后。比如对于“取消”&#xff0c;中文中我们使用“…

传统网站有没有建设必要性长春搜索排名提升

首发公号&#xff1a;Rand_cs 共享内核空间 我们常说&#xff0c;每个进程都有自己的虚拟地址空间&#xff0c;但其中内核部分是共享的。 这就有个问题&#xff0c;如何共享的&#xff1f; 系统启动时创建了一张内核页表&#xff0c;里面记录着内核地址空间与物理地址空间的…

网站能获取访问者关键词搜索引擎又称为

1.简介 RapidJSON 是一个 C 的 JSON 解析库&#xff0c;由腾讯开源。 支持 SAX 和 DOM 风格的 API&#xff0c;并且可以解析、生成和查询 JSON 数据。RapidJSON 快。它的性能可与strlen() 相比。可支持 SSE2/SSE4.2 加速。RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至…

详细介绍:PHP基础-数据类型(第九天)

详细介绍:PHP基础-数据类型(第九天)2025-09-22 17:07 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !…

实用指南:告别IP被封!分布式爬虫的“隐身”与“分身”术

实用指南:告别IP被封!分布式爬虫的“隐身”与“分身”术pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

从 “盲调” 到 “精准优化”:SQL Server 表统计信息实战指南

本文核心要旨在于:SQL Server 表统计信息作为元数据对象,宛如数据分布的 "指南针",精准存储着数据分布信息,为查询优化器提供关键依据,助力其生成高效的查询执行计划。在维护方面,统计信息更新有手动与…

别的摄像机都能国标GB28181注册上,就这台海康摄像机注册不上来,国标配置都反复检查没问题

别的摄像机都能国标GB28181注册上,就这台海康摄像机注册不上来,国标配置都反复检查没问题先看看下午EasyGBS群里用户提到的问题,我先大概描述一下,用户说有一台海康的摄像机IPC国标注册不到EasyGBS,另一台可以,区…

保护眼睛小程序

import wx import time from datetime import datetime, timedelta class MyFrame(wx.Frame): def init(self): super().init(None, title=用眼提醒, size=wx.Size(800, 600)) self.SetWindowStyle(wx.STAY_ON_TOP)# 创…

公司有网站域名 如何做网站传媒公司做网站编辑 如何

同一个浏览器登录不同账号session一致&#xff0c;这就导致后面登录的用户数据会把前面登录的用户数据覆盖掉&#xff0c;这个问题很常见&#xff0c;当前我这边解决的就是同一个浏览器不同窗口只能登录一个用户&#xff0c;解决方案如下&#xff1a; 1、在App.vue中监听本地数…

石家庄网站外包有多少种做网站后台程序

Java 集合交集判断 一. 使用 retainAll()方法二. 使用 removeAll() 方法与判断集合大小三. 使用 Stream 流式处理四. 使用 Collections.disjoint() 方法五. 总结六. 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续…

视频网站做板块栏目手机大全网站

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-31&#xff09;山西电力市场全天平均日前电价为445.23元/MWh。其中&#xff0c;最高日前电价为791.27元/MWh&#xff0c;预计出现在08:15。最低日前电价为270.52元/MWh&#xff0c;预计…

做的网站上传到服务器专业制作效果图公司

今天给大家分享的题目是leetcode242有效的字母异位词 我们先看题目描述&#xff1a; Chatgpt中对于字母异位词的解释如下&#xff1a; 字母异位词是指由相同的字母组成但顺序不同的单词。换句话说&#xff0c;字母异位词具有相同的字母&#xff0c;只是排列顺序不同。 简单的将…

备案可以不关闭网站吗科技设计网站建设

排序思想掌握 前言&#xff1a; 开发当中为什么会用到算法&#xff1f;或者说为什么需要算法与数据结构等&#xff1f; 算法思想可以帮助我们优化程序的性能&#xff0c;例如减少时间与空间复杂度&#xff0c;从而使程序更快、更有效地运行。在数据分析领域&#xff0c;算法思想…