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);
}}在上述代码中,我们设置了默认的过期时间为 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 精品网络服务器。拒绝绕路,拒绝不稳定。
评论