J'ai vérifié la spécification de la période de validité de Redis, mais j'ai créé un article car la description était ancienne et il y avait peu d'informations qui peuvent être utilisées telles quelles
build.gradle
implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
@Configuration
@EnableCaching
public class RedisConfig {
@Bean
public CacheManager cacheManager(RedisConnectionFactory fac) {
//1. 1. Créer un cache à partir du générateur de cache
RedisCacheManagerBuilder builder = RedisCacheManager.builder(fac);
builder
.cacheDefaults(
//2. Définir une date d'expiration du cache par défaut
RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofDays(1)))
//3. 3. Définissez une date d'expiration pour le cache nommé cache1
.withCacheConfiguration("cache1",
RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(1)))
//3. 3. Définissez une date d'expiration pour le cache nommé cache2
.withCacheConfiguration("cache2",
RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(1)));
return builder.build();
}
}
** Supplément **
1.
//fac est un type RedisConnectionFactory
RedisCacheManager rcm = RedisCacheManager.create(fac);
2.
3.
@RestController
@RequestMapping("/api/sample")
public class SampleRedisCacheController {
@Autowired
CacheManager cm;
@GetMapping("redisCache")
public String redisCache() {
Cache c1 = cm.getCache("cache1");
c1.put("k1", 123456);
c1.put("k2", 234567);
Cache c2 = cm.getCache("cache2");
c2.put("k1", 123456);
c2.put("k2", 234567);
return "redis cache test";
}
}
Accédez à ce qui suit et le cache sera créé dans Redis http://localhost:8080/api/sample/redisCache
La date d'expiration de Redis dépend de la classe de réglage
Cela fait un moment avant que le TTL ne soit publié.
Le contenu de la classe CacheManager m'a semblé difficile, mais j'ai pu comprendre comment le créer et divers paramètres. Le constructeur a été mentionné dans Effective Java. Je pense qu'il a été introduit car il est pratique à utiliser lorsqu'il y a beaucoup d'arguments dans le constructeur. Je pense qu'il a été introduit parce qu'il y a beaucoup de valeurs de réglage cette fois.
Recommended Posts