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

网站开发前端和后端技术网页版微信二维码不出来

网站开发前端和后端技术,网页版微信二维码不出来,肇庆免费模板建站,wordpress编辑器保留word格式当我们的应用程序需要频繁地读取和写入数据时,为了提高应用程序的性能,我们通常会使用缓存技术。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://www.bjxfkj.com.cn/article/108944.html

相关文章:

  • 网站建设汇报 安全保障c2m模式的电商平台有哪些
  • 哪里培训做网站wordpress 不显示全文
  • 手机网站 像素私人网站如何建
  • 网站建设有哪些费用百度竞价广告收费标准
  • 有没有做招聘网站的php做简单网站教程
  • 重庆网站营销百度抓取网站登录
  • pathon做网站wordpress网站之间互联
  • 网站获取qq上海房地产网站建设报价
  • 网站运营前期中期后期电子邮件免费注册
  • 2018网站建设行业腾讯cvm安装wordpress
  • 网站建设的组织机构河北建设网官方网站
  • 中国建设银行网站怎么改支付密码是什么网站设计的素材
  • 崇明建设镇虹桥村网站微信下安装
  • soho外贸网站建设自己搭建网站需要多少钱
  • 帝国建站程序厦门电商网站
  • 易语言可以做网站管理系统吗wordpress 插件钩子
  • 15个国内互动网站设计欣赏缪斯设计公司官网
  • 网站建设的经费预算报告网站建设运营协议书
  • 建筑人才网官方网站评职称品牌设计策划公司
  • 新手seo网站做什么类型好南京广告公司有哪些公司
  • 品划网络做营销型网站贴吧广告投放
  • 安庆商务网站建设化隆县公司网站建设
  • 建设项目管理公司网站东营建设信息网最新招聘
  • 网站后台的意义go语言网站开发教程
  • 手机h5免费模板网站模板下载电白网站开发公司
  • 那些公司需要网站开发工程师个人网站备案后内容可以改么
  • 外国网站备案镇江教育平台网站建设
  • 聊城做手机网站推广网站系统建站
  • 模拟网站建设软件有哪些格兰仕网站开发方案
  • 哪个网站可以帮忙做简历logo制作步骤