当前位置: 首页 > news >正文

洛阳建站哪家好镇赉县做网站的

洛阳建站哪家好,镇赉县做网站的,有什么可以做建筑模型的网站,seo外链类型有哪些更多SpringBoot3内容请关注我的专栏#xff1a;《SpringBoot3》 期待您的点赞#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Redis#xff08;三#xff09; 1. 引入 Redis 依赖2. 配置 RedisCacheManager 及自定义过期策略2.1 示例代码#xff1a;自定义过期策略 3. 配置… 更多SpringBoot3内容请关注我的专栏《SpringBoot3》 期待您的点赞收藏⭐评论✍ 重学SpringBoot3-集成Redis三 1. 引入 Redis 依赖2. 配置 RedisCacheManager 及自定义过期策略2.1 示例代码自定义过期策略 3. 配置说明4. 使用自定义的缓存区域5. 验证6. 总结 书接上回重学SpringBoot3-集成Redis二 Spring Boot 提供了对缓存的简便支持使得开发者能够通过简单的注解实现缓存操作减少重复代码的编写。本文将继续介绍如何在 Spring Boot 3 中通过注解驱动的方式针对不同缓存区域设置不同缓存策略。 在 Spring Boot 3 中使用 RedisCacheManager 可以为不同的缓存区域缓存名称设置自定义的过期策略。通过为每个缓存区域创建不同的 RedisCacheConfiguration你可以指定不同的过期时间TTL和其他缓存行为。以下是如何为不同的缓存区域设置自定义过期策略的详细说明。 1. 引入 Redis 依赖 首先确保你的 pom.xml 或 build.gradle 文件中已经引入了 Redis 相关的依赖。以 Maven 为例 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependency2. 配置 RedisCacheManager 及自定义过期策略 通过创建自定义的 CacheManager你可以为不同的缓存名称指定不同的 RedisCacheConfiguration每个配置可以有不同的过期时间或序列化规则。 2.1 示例代码自定义过期策略 package com.coderjia.boot310redis.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; import org.springframework.data.redis.serializer.StringRedisSerializer;import java.time.Duration; import java.util.HashMap; import java.util.Map;/*** author CoderJia* create 2024/10/5 下午 12:36* Description**/ Configuration public class CacheConfig {// Bean// public RedisCacheConfiguration cacheConfiguration() {// return RedisCacheConfiguration.defaultCacheConfig()// .prefixCacheNameWith(coderjia:) // 设置缓存 Key 前缀// .entryTtl(Duration.ofMinutes(10)) // 设置缓存过期时间为 10 分钟// .disableKeyPrefix()// .enableTimeToIdle()// .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) // 自定义 Key 序列化器// .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); // 自定义 Value 序列化器// }Beanpublic RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {// 创建默认的 RedisCacheConfiguration并设置全局缓存过期时间RedisCacheConfiguration defaultCacheConfig RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(5)) // 默认全局缓存过期时间为5分钟.disableCachingNullValues(); // 禁止缓存 null 值// 为特定缓存配置不同的过期策略MapString, RedisCacheConfiguration cacheConfigurations new HashMap();// 配置名为 shortLivedCache 的缓存设置过期时间为1分钟cacheConfigurations.put(shortLivedCache,RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(1)) // 设置缓存的TTL为1分钟.disableCachingNullValues()); // 禁止缓存 null 值// 配置名为 longLivedCache 的缓存设置过期时间为1小时cacheConfigurations.put(longLivedCache,RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(1)) // 设置缓存的TTL为1小时.disableCachingNullValues()); // 禁止缓存 null 值// 配置名为 jsonCache 的缓存使用 JSON 序列化器cacheConfigurations.put(jsonCache,RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(30)) // 30分钟过期.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())).disableCachingNullValues()); // 禁止缓存 null 值// 创建 RedisCacheManager加载自定义的缓存配置return RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(defaultCacheConfig) // 设置默认的缓存配置.withInitialCacheConfigurations(cacheConfigurations) // 加载不同缓存区域的配置.build();} }3. 配置说明 defaultCacheConfig这是默认的缓存配置用于所有未显式定义的缓存区域。在上面的例子中默认的 TTL 是 5 分钟。 cacheConfigurations.put(shortLivedCache, ...)为缓存名为 shortLivedCache 的区域设置了特定的过期时间为 1 分钟。这意味着当你使用 Cacheable 指定该缓存时它的 TTL 将为 1 分钟。 cacheConfigurations.put(longLivedCache, ...)为缓存名为 longLivedCache 的区域设置了 1 小时的 TTL。这非常适合需要长时间保留的数据。 cacheConfigurations.put(jsonCache, ...)这个缓存区域使用 JSON 序列化器。这样可以确保键和值的序列化与反序列化是通过 JSON 格式完成的。 4. 使用自定义的缓存区域 在代码中使用这些自定义的缓存区域时你可以通过 Cacheable 注解指定不同的缓存名称。 import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service;Service public class UserService {// 当方法第一次调用时结果将被缓存起来之后相同参数的调用将直接从缓存中获取数据Cacheable(value user, key #p0)public User getUserById(Long id) {// 模拟数据库查询操作System.out.println(Fetching user with id: id);return new User(id, User id);}// 使用短生命周期的缓存配置1分钟Cacheable(value shortLivedCache, key #p0)public User getShortLivedUserById(Long id) {return findUserInDatabase(id);}// 使用长生命周期的缓存配置1小时Cacheable(value longLivedCache, key #p0)public User getLongLivedUserById(Long id) {return findUserInDatabase(id);}// 使用 JSON 序列化的缓存30分钟Cacheable(value jsonCache, key #p0)public User getJsonSerializedUserById(Long id) {return findUserInDatabase(id);}private User findUserInDatabase(Long userId) {// 模拟数据库查找return new User(userId, John Doe);} }5. 验证 当调用 getUserById 时缓存数据会存储在默认的缓存区域数据会在 5 分钟后过期。 调用 getShortLivedUserById 时数据会在 1 分钟后自动失效。 调用 getLongLivedUserById 时缓存数据会在 1 小时后失效。 getJsonSerializedUserById 方法将数据以 JSON 格式序列化并在 30 分钟后过期。 6. 总结 通过 RedisCacheManager 和 RedisCacheConfiguration你可以为不同的缓存区域设置不同的 TTL、序列化策略、以及缓存行为。这样可以根据不同的业务场景调整缓存的生命周期优化应用的性能。 为了更进一步完整代码可以将缓存名称和对应有效期放入都配置文件中更有利于线上环境根据实际情况调整缓存有效期示例如下 Value(${cache.shortLiveCache.name}) private String shortLiveCacheName;Value(${cache.shortLiveCache.ttl}) private long shortLiveCacheTtl;RedisCacheConfiguration config RedisCacheConfiguration.defaultCacheConfig().cacheName(shortLiveCacheName).enableTimeToIdle(true).tti(Duration.ofSeconds(shortLiveCacheTtl));
http://www.dnsts.com.cn/news/11957.html

相关文章:

  • 企业门户网站制作教程wordpress重新发布
  • 云主机网站的空间在哪里永久免费asp空间
  • 建网站找谁单人做网站
  • 十大网站黄页的免费济南本地网站建设
  • 做橱窗设计的网站专做兼职的网站
  • 万网空间存放两个网站关于网站开发中网站上传
  • 贵阳专业做网站的公司有哪些四川省住房和城乡建设厅官网站网
  • 聊城网站百度推广做一个公司网站大概要多少钱
  • 揭阳企业免费建站seo优化百度自然排名
  • 小型网站开发要多少钱html做网站经验技巧
  • 郑州网站优化培训电商培训班一般多少钱一个月
  • 做网站是找什么人公司网站建设是什么费用
  • 海淀教育人才网站门户网站和微网站的区别
  • 整合营销网站建设大型网站 空间
  • 云建站的正确步骤网站设计前景怎样
  • 南宁品牌网站建设公司网站建设中服务器的搭建方式有几种
  • 服装商店的网站建设要求手机版网站建设
  • 男女做受视频网站wordpress搬家后403
  • 手机网站 app生产管理软件app
  • js 网站校验廊坊百度关键词优化怎么做
  • 已有wordpress源码的江西做网站优化好的
  • 网站的建设ppt百度查重入口
  • 怎么自己建立公司网站wordpress外网
  • 东莞网站建设属于什么专业设计好的商城网站建设网络公司
  • 大理网站推广php可以做网站
  • 门户网站做免费相亲的太原网站建设山西悉云科技
  • 大型旅游网站源码 织梦 2016微网站建设高端网站定制
  • 能做网站的网站微信公众号做网站卖东西
  • 网站如何添加统计代码是什么意思桂林市生活网官方网站
  • 瀑布流资源网站模板专业网站设计 网络服务