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
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. 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.
@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";
}
}
Greifen Sie auf Folgendes zu, und der Cache wird in Redis erstellt http://localhost:8080/api/sample/redisCache
Das Ablaufdatum von Redis richtet sich nach der Einstellungsklasse
Es hat eine Weile gedauert, bis die TTL ausgestellt wurde.
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