sql >> Database >  >> NoSQL >> Redis

Redis - Verlopen indexen worden niet verwijderd

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.




  1. Hoe een array-index te projecteren na het afwikkelen van een array met het MongoDB-aggregatieframework

  2. Hoe zorgt u ervoor dat uw MongoDB-clusters Amazon AWS-storingen kunnen overleven?

  3. Alle collecties in een mongo-database weergeven in een nodejs-script

  4. Stuur:de toegang is geweigerd om het eigendom op te lossen omdat het geen eigen eigendom is van de ouder