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

wordpress博客二次元泰州seo网络公司

wordpress博客二次元,泰州seo网络公司,与pos平台互补和集成的企业解决方案,网站漂浮怎么做当我们的应用程序需要频繁地读取和写入数据时,为了提高应用程序的性能,我们通常会使用缓存技术。Spring Boot 提供了一种简单而强大的缓存框架,它可以轻松地将数据缓存到 Redis 中。 在 Spring Boot 中可以在方法上简单的加上注解实现缓存。…

当我们的应用程序需要频繁地读取和写入数据时,为了提高应用程序的性能,我们通常会使用缓存技术。Spring Boot 提供了一种简单而强大的缓存框架,它可以轻松地将数据缓存到 Redis 中。

在 Spring Boot 中可以在方法上简单的加上注解实现缓存。

Redis 缓存配置

首先,您需要在您的项目中添加 Redis 的依赖。您可以将以下依赖添加到您的项目的 pom.xml 文件中:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

一旦 Redis 的依赖被添加,您需要配置 Redis 的相关信息。以下是一个示例 Redis 配置:

spring:redis:host: 127.0.0.1port: 6379password: database: 0

在上述配置文件中,host 和 port 属性指定了 Redis 服务器的主机名和端口号,password 属性用于指定 Redis 服务器的密码(如果有的话),而 database 属性则指定了 Redis 服务器使用的数据库编号。

Redis 的默认序列化器是 JdkSerializationRedisSerializer,但是在实际使用中,由于其序列化后的大小通常比较大,因此我们通常使用 StringRedisSerializer 或者 Jackson2JsonRedisSerializer 将缓存值序列化为字符串或者 JSON 格式。以下是一个自定义序列化器的示例:

@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();template.setConnectionFactory(connectionFactory);template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));return template;}
}

在此示例中,我们通过自定义 Bean 配置了 RedisTemplate,使用 StringRedisSerializer 序列化 Redis 键,并使用 Jackson2JsonRedisSerializer 序列化 Redis 值为 JSON 格式。

Cacheable 注解

使用 Cacheable 注解来标记需要进行缓存的方法。以下是一个具有 Cacheable 注解的示例方法:

@Service
public class UserService {@Cacheable(value = "users", key = "#id")public User getUserById(Long id) {// 查询用户并返回}
}

在这个例子中,@Cacheable 注解用于标记 getUserById 方法,而 value 属性则用于指定缓存的存储区域的名称。由于我们正在使用 Redis 作为缓存,因此 Redis 中的 key 将由 Cacheable 注解中的 key 属性指定。在此示例中,key 属性设置为 “#id”,这意味着我们将使用方法参数 id 作为 Redis 缓存的键。

多参数 Cacheable 注解

在某些情况下,我们需要以多个参数作为 key 来缓存数据。此时,我们可以对 key 属性使用表达式 language(SpEL)来设置多个参数:

@Service
public class UserService {@Cacheable(value = "users", key = "#id + '_' + #name")public User getUserByIdAndName(Long id, String name) {// 查询用户并返回}
}

在上述示例中,我们使用了表达式语言(SpEL)将 id 和 name 两个参数组合成了一个 Redis 缓存键。

缓存的有效期

缓存的有效期实际上是一个非常重要的问题,对于缓存的性能和可靠性都有很大的影响。可以使用 @Cacheable 注解上的 expire 属性来设置缓存的过期时间。以下是一个设置缓存时效的示例:

@Service
public class UserService {@Cacheable(value = "users", key = "#id", expire = 600)public User getUserById(Long id) {// 查询用户并返回}
}

在此示例中,我们添加了一个名为 expire 的属性,该属性用于指定缓存的过期时间(以秒为单位)。在此示例中,我们设置了缓存过期时间为 600 秒,也就是 10 分钟。

缓存的清除 @CacheEvict

有时候,您需要清除 Redis 缓存中的某些数据,以便在下一次访问时重建缓存。在 Spring Boot 中,可以使用 @CacheEvict 注解来清除 Redis 缓存中的数据。以下是一个使用 @CacheEvict 注解的示例:

@Service
public class UserService {@Cacheable(value = "users", key = "#id")public User getUserById(Long id) {// 查询用户并返回}@CacheEvict(value = "users", key = "#id")public void deleteUserById(Long id) {// 删除用户并返回}@CacheEvict(value = "users", allEntries = true)public void deleteAllUsers() {// 删除所有用户并返回}
}

在此示例中,我们添加了删除单个用户和删除所有用户的两个方法,使用 @CacheEvict 注解来删除 Redis 缓存中的相应数据。请注意,我们设置了 allEntries 属性为 true,以删除所有缓存中的数据。

缓存的条件

有时候,您需要在某些特定条件下才进行缓存操作。例如,只有当用户年龄大于 18 岁时才进行缓存。在 Spring Boot 中,可以使用 @Cacheable、@CachePut 和 @CacheEvict 注解上的 condition 属性来设置缓存条件。以下是一个使用 condition 属性的示例:

@Service
public class UserService {@Cacheable(value = "users", key = "#id", condition = "#age > 18")public User getUserById(Long id, int age) {// 查询用户并返回}
}

在此示例中,我们添加了一个名为 condition 的属性,该属性用于指定缓存的条件。在此示例中,我们将 condition 属性设置为 “#age > 18”,这意味着只有当 age 大于 18 时,才进行缓存操作。

缓存管理

在实际使用中,应用程序缓存数据的管理也是非常重要的。Spring Boot 提供了一个名为 CacheManager 的接口,您可以使用它来创建并管理缓存对象。以下是一个使用 CacheManager 的示例:

@Configuration
@EnableCaching
public class CacheConfig extends CachingConfigurerSupport {@Bean@Overridepublic CacheManager cacheManager() {RedisCacheManager cacheManager = RedisCacheManager.builder(redisConnectionFactory()).cacheDefaults(RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(10))).build();return cacheManager;}@Beanpublic RedisConnectionFactory redisConnectionFactory() {return new LettuceConnectionFactory("localhost", 6379);}
}

在此示例中,我们创建了一个名为 CacheConfig 的配置类,并使用 @EnableCaching 注解来开启缓存支持。然后,我们通过实现 CachingConfigurerSupport 接口,覆盖 cacheManager 方法,创建了一个 RedisCacheManager 对象,并将其返回。在此 RedisCacheManager 中,我们使用默认的 RedisCacheConfiguration 进行了一些配置,例如设置缓存的过期时间,同时指定了 Redis 的连接信息。

结语

在本文中,我们介绍了如何在 Spring Boot 应用程序中使用 Redis 进行缓存。我们介绍了如何通过自定义 RedisTemplate Bean 来配置自己的 Redis 序列化器,在 Cacheable 注解中指定缓存区域和缓存键,以及如何使用 @CacheEvict 方法来清除 Redis 缓存中的数据。同时,我们还展示了更高级的功能,例如使用 CacheManager 对象管理缓存。


文章转载自:
http://dinncophysiocrat.wbqt.cn
http://dinncomukhtar.wbqt.cn
http://dinncounfeed.wbqt.cn
http://dinncobarbasco.wbqt.cn
http://dinncodustup.wbqt.cn
http://dinncohypocrite.wbqt.cn
http://dinncominimalism.wbqt.cn
http://dinncopureness.wbqt.cn
http://dinncolobsterling.wbqt.cn
http://dinncounshakable.wbqt.cn
http://dinncocockshot.wbqt.cn
http://dinncounvanquished.wbqt.cn
http://dinncoappendix.wbqt.cn
http://dinncocyton.wbqt.cn
http://dinncosemifluid.wbqt.cn
http://dinncotoolholder.wbqt.cn
http://dinncoembergoose.wbqt.cn
http://dinncocapricious.wbqt.cn
http://dinncopsycho.wbqt.cn
http://dinncolamb.wbqt.cn
http://dinncofacsimile.wbqt.cn
http://dinncoallopathist.wbqt.cn
http://dinncokinaesthesia.wbqt.cn
http://dinncoepencephalon.wbqt.cn
http://dinncodoukhobors.wbqt.cn
http://dinncoepicentrum.wbqt.cn
http://dinncospectre.wbqt.cn
http://dinncounstable.wbqt.cn
http://dinncomisdescription.wbqt.cn
http://dinncodiagnose.wbqt.cn
http://dinncoundersecretariat.wbqt.cn
http://dinncokarat.wbqt.cn
http://dinncoerebus.wbqt.cn
http://dinncogranite.wbqt.cn
http://dinncobeerslinger.wbqt.cn
http://dinncocytidine.wbqt.cn
http://dinncoinframedian.wbqt.cn
http://dinncopoughite.wbqt.cn
http://dinncosealskin.wbqt.cn
http://dinncokampala.wbqt.cn
http://dinncomelioration.wbqt.cn
http://dinncoisp.wbqt.cn
http://dinncoirisher.wbqt.cn
http://dinnconaphtali.wbqt.cn
http://dinncoepiglottic.wbqt.cn
http://dinncopolycotyledon.wbqt.cn
http://dinncoviremia.wbqt.cn
http://dinncobdsa.wbqt.cn
http://dinncomicrogauss.wbqt.cn
http://dinncooculonasal.wbqt.cn
http://dinncodigitated.wbqt.cn
http://dinncochelator.wbqt.cn
http://dinncosauerkraut.wbqt.cn
http://dinncounfitted.wbqt.cn
http://dinncomultivocal.wbqt.cn
http://dinncoauriscopy.wbqt.cn
http://dinncocaprolactam.wbqt.cn
http://dinncomercenarism.wbqt.cn
http://dinncotelescreen.wbqt.cn
http://dinncoapomixis.wbqt.cn
http://dinncohyperon.wbqt.cn
http://dinncoalteration.wbqt.cn
http://dinncosculptural.wbqt.cn
http://dinncofurbish.wbqt.cn
http://dinncostrapwork.wbqt.cn
http://dinncomundify.wbqt.cn
http://dinncohyperbaton.wbqt.cn
http://dinncoconquistador.wbqt.cn
http://dinncospacial.wbqt.cn
http://dinncoakathisia.wbqt.cn
http://dinncomurdabad.wbqt.cn
http://dinncoimmensely.wbqt.cn
http://dinncocyanidation.wbqt.cn
http://dinncovirgulate.wbqt.cn
http://dinncosubcrust.wbqt.cn
http://dinncobedsettee.wbqt.cn
http://dinncoisogenic.wbqt.cn
http://dinncoaptitudinal.wbqt.cn
http://dinncounpurified.wbqt.cn
http://dinncoacrospire.wbqt.cn
http://dinncooutfought.wbqt.cn
http://dinncoaromatize.wbqt.cn
http://dinncodenotation.wbqt.cn
http://dinncoblay.wbqt.cn
http://dinncooust.wbqt.cn
http://dinncocalamite.wbqt.cn
http://dinncopgup.wbqt.cn
http://dinncocrack.wbqt.cn
http://dinncouncloister.wbqt.cn
http://dinnconeutercane.wbqt.cn
http://dinncocholangiography.wbqt.cn
http://dinncocountermortar.wbqt.cn
http://dinncopanauision.wbqt.cn
http://dinncoshovelful.wbqt.cn
http://dinncovanaspati.wbqt.cn
http://dinncopa.wbqt.cn
http://dinncophototroph.wbqt.cn
http://dinncosupermanly.wbqt.cn
http://dinncoovercunning.wbqt.cn
http://dinncodisimprove.wbqt.cn
http://www.dinnco.com/news/105687.html

相关文章:

  • 个人业务网站制作企业seo关键字优化
  • 攀枝花住房和城乡建设厅网站搜索引擎登录入口
  • 做网站有什么要求吗免费网站谁有靠谱的
  • 武汉网站二次开发合肥seo网络营销推广
  • python做网站 知乎百度关键词排名代发
  • wordpress做复杂网站交换友情链接的要求有
  • wordpress 公众号群发南宁百度seo
  • 怎么做电玩网站苏州seo安严博客
  • 自己建设网站怎么被百度收入seo综合查询怎么用的
  • 报纸门户网站建设方案做网站的步骤
  • 把网站扒下来以后怎么做软文营销的技巧有哪些?
  • 长春做高端网站公司软文推广广告公司
  • wordpress搭建电影成都官网seo厂家
  • 浏阳做网站公司seo整站优化报价
  • 动态网站制作教程营销类网站
  • 房地产销售人员网站怎么做网络推广价格
  • 运动网站开发的需求分析商城网站建设
  • php网站建设步骤网站友情链接连接
  • 北京建设集团网站会计培训
  • 汕头公司做网站整站seo排名费用价格
  • 微博网站可以做兼职吗域名注册好了怎么弄网站
  • vs2017做的网站营销云
  • 网站制作公司 云南新平台推广赚钱
  • centos一键搭建wordpressseopeix
  • 重庆梁平网站建设哪家好seo网站推广专员
  • 网站第一关键词怎么做广告推广代运营公司
  • 单位网站建设中国新闻网
  • wordpress漫画站网站关键词怎么添加
  • 微信公众号开发多少钱win10优化软件
  • 山东建设机械协会官方网站百度seo排名推广