Ik kon de oplossing vinden om de sleutels te verwijderen :phantom en :idx .
In de Redis-configuratieklasse moet het volgende worden geplaatst:
@Configuration
@EnableRedisRepositories(enableKeyspaceEvents = EnableKeyspaceEvents.ON_STARTUP, basePackages = {
"com.aaaaa.bbbbb.persistence.model.repository" }, keyspaceNotificationsConfigParameter = "")
Wanneer u het kenmerk "keyspaceNotificationsConfigParameter" instelt op de lege tekenreeks, wordt de opdracht CONFIG die niet werkt in AWS Redis niet uitgevoerd, maar op deze manier wordt de Expiration Event Listener geïnstantieerd.
Dit attribuut brengt een standaardwaarde (Ex), die ervoor zorgt dat het CONFIG-commando wordt uitgevoerd.
Dit gebeurt door de volgende veercode:
public void init() {
if (StringUtils.hasText(keyspaceNotificationsConfigParameter)) {
RedisConnection connection = listenerContainer.getConnectionFactory().getConnection();
try {
Properties config = connection.getConfig("notify-keyspace-events");
if (!StringUtils.hasText(config.getProperty("notify-keyspace-events"))) {
connection.setConfig("notify-keyspace-events", keyspaceNotificationsConfigParameter);
}
} finally {
connection.close();
}
}
doRegister(listenerContainer);
}
Hoe niet aan deze voorwaarde wordt voldaan
if (StringUtils.hasText(keyspaceNotificationsConfigParameter)) {
het CONFIG-commando wordt niet uitgevoerd.
Ik denk dat Spring dit moet verbeteren en niet moet laten verlopen, gebaseerd op het instellen van een attribuut met een lege tekenreeks.
Het enige dat ook nodig is, is dat in de AWS ElastiCache (Redis) een waarde wordt ingesteld op de parameter "notify-keyspace-events", zoals AKE, wat betekent dat alle gebeurtenissen worden gemeld.