キーを削除する解決策を見つけることができました:phantom および:idx 。
Redis構成クラスには、次のように配置する必要があります。
@Configuration
@EnableRedisRepositories(enableKeyspaceEvents = EnableKeyspaceEvents.ON_STARTUP, basePackages = {
"com.aaaaa.bbbbb.persistence.model.repository" }, keyspaceNotificationsConfigParameter = "")
「keyspaceNotificationsConfigParameter」属性を空の文字列に設定すると、AWS Redisで機能しないCONFIGコマンドは実行されませんが、このようにして、有効期限イベントリスナーがインスタンス化されます。
この属性はデフォルト値(Ex)をもたらし、CONFIGコマンドが実行されます。
これは、次のスプリングコードによって発生します:
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);
}
この条件が満たされない方法
if (StringUtils.hasText(keyspaceNotificationsConfigParameter)) {
CONFIGコマンドは実行されません。
空の文字列で属性を設定することに基づいて、Springはこれを改善する必要があり、そのフローを作成するべきではないと思います。
また必要なのは、AWS ElastiCache(Redis)で、値がAKEなどの「notify-keyspace-events」パラメーターに設定されていることです。これは、すべてのイベントが通知されることを意味します。