写点什么

SpringCache Redis 配置与缓存使用 - 配置过期时间

  • 2024-12-07
    四川
  • 本文字数:1399 字

    阅读完需:约 5 分钟

SpringCache Redis配置与缓存使用-配置过期时间

Spring Cache 是 Spring 框架提供的一个抽象层,用于简化缓存的使用。Redis 是一种开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。在 Spring Cache 中使用 Redis 可以提高应用程序性能。


首先我们需要在项目中引入相关依赖。对于 Maven 项目,在 pom.xml 文件中添加以下依赖:


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


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


​然后我们需要配置 Redis 连接信息和 CacheManager,在 application.properties 或 application.yml 文件里添加以下配置:

Redis 连接信息

spring.redis.host=your_redis_hostspring.redis.port=your_redis_port

如果有密码则需要配置密码项:

spring.redis.password=your_redis_password

​接下来在 Java 代码里创建一个 CacheManager Bean,并设置默认过期时间:


@Configuration@EnableCaching // 启动缓存功能 public class RedisConfig {


@Autowiredprivate RedisConnectionFactory connectionFactory;


@Beanpublic CacheManager cacheManager() {// 使用 Jackson2JsonRedisSerializer 来序列化和反序列化 redis 的 value 值(默认使用 JDK 的序列化方式)Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer(Object.class);


  ObjectMapper mapper = new ObjectMapper();  mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
serializer.setObjectMapper(mapper);
// 配置redis缓存管理对象 RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofHours(1)) // 设置缓存有效期一小时 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(serializer)) .disableCachingNullValues();
return RedisCacheManager.builder(connectionFactory) .cacheDefaults(config) .build();
复制代码


}}​在上述代码中,我们设置了默认的过期时间为 1 小时。如果你想为不同的缓存设置不同的过期时间,你可以在创建 RedisCacheManager 时使用 initialCacheConfigurations 方法来指定:


Map<String, RedisCacheConfiguration> configMap = new HashMap<>();configMap.put("cacheName1", config.entryTtl(Duration.ofMinutes(10)));configMap.put("cacheName2", config.entryTtl(Duration.ofMinutes(30)));


return RedisCacheManager.builder(connectionFactory).withInitialCacheConfigurations(configMap).build();​最后,在需要使用缓存的方法上添加 @Cachable 注解:


@Servicepublic class SomeService {


@Cachable(value="cacheName1", key="#id")public SomeObject getSomeObject(String id) {// ...}}​以上就是 Spring Cache 和 Redis 结合使用,并配置过期时间的基本步骤。这样配置后,Spring 会自动处理数据读取和写入到 Redis 中,并且会根据我们设定好的规则自动处理数据过期问题。


蓝易云-五网 CN2 服务器【点我购买】


蓝易云采用 KVM 高性能架构,稳定可靠,安全无忧!蓝易云服务器真实 CN2 回国线路,不伪造,只做高质量海外服务器。海外免备案云服务器链接:www.tsyvps.com


蓝易云香港五网 CN2 GIA/GT 精品网络服务器。拒绝绕路,拒绝不稳定。

用户头像

百度搜索:蓝易云 2023-07-05 加入

香港五网CN2免备案服务器

评论

发布
暂无评论
SpringCache Redis配置与缓存使用-配置过期时间_百度搜索:蓝易云_InfoQ写作社区