[JAVA] Informationen zum Festlegen des Gültigkeitszeitraums beim Speichern des Caches in Redis mit Spring Cache

Hintergrund

Ich habe die Gültigkeitsdauer von Redis überprüft, aber einen Artikel erstellt, da die Beschreibung alt war und nur wenige Informationen vorhanden waren, die so verwendet werden können, wie sie sind. * Ab 20200827 befragt

Stellen Sie sicher, dass Redis den Gültigkeitszeitraum für alle Daten im Spring Cache angeben kann

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
Konfigurationsklasse erstellen
@Configuration
@EnableCaching
public class RedisConfig {

	@Bean
	public CacheManager cacheManager(RedisConnectionFactory fac) {
		
        //1. 1. Erstellen Sie einen Cache aus dem Cache Builder
		RedisCacheManagerBuilder builder = RedisCacheManager.builder(fac);
		builder
			.cacheDefaults(
		//2. Legen Sie ein Standard-Cache-Ablaufdatum fest
					RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofDays(1)))
		//3. 3. Legen Sie ein Ablaufdatum für den Cache mit dem Namen cache1 fest
			.withCacheConfiguration("cache1", 
					RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(1)))
		//3. 3. Legen Sie ein Ablaufdatum für den Cache mit dem Namen cache2 fest
			.withCacheConfiguration("cache2", 
					RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(1)));

		return builder.build();
	}
}

** Ergänzung **

1.

//fac ist ein RedisConnectionFactory-Typ
RedisCacheManager rcm = RedisCacheManager.create(fac);

2.

3.

Controller für die Betriebsprüfung (Cache1 und Cache2 erstellen)
@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";
	}
}

Überprüfe das Ergebnis

Kommentar

Der Inhalt der CacheManager-Klasse schien schwierig zu sein, aber ich konnte verstehen, wie man sie erstellt und verschiedene Einstellungen. Der Builder wurde in Effective Java erwähnt. Ich denke, es wurde eingeführt, weil es bequem zu verwenden ist, wenn der Konstruktor viele Argumente enthält. Ich denke, dass es eingeführt wurde, weil es diesmal viele Einstellwerte gibt.

Recommended Posts

Informationen zum Festlegen des Gültigkeitszeitraums beim Speichern des Caches in Redis mit Spring Cache
Null-Support-Cache in Spring Data Redis
Verwenden Sie thymeleaf3 mit parent, ohne Spring-Boot-Starter-Parent in Spring Boot anzugeben
Informationen zum Verhalten beim Erstellen einer Dateizuordnung mit Java
Informationen zum Festlegen des JAXRS-Pfads
Siehe das relative Umleitungsverhalten mit der Einstellung server.tomcat.use-relative-redirects in Spring Boot