Saya dapat menemukan solusi untuk menghapus kunci :phantom dan :idx .
Di kelas konfigurasi Redis, berikut ini harus diletakkan:
@Configuration
@EnableRedisRepositories(enableKeyspaceEvents = EnableKeyspaceEvents.ON_STARTUP, basePackages = {
"com.aaaaa.bbbbb.persistence.model.repository" }, keyspaceNotificationsConfigParameter = "")
Saat Anda menyetel atribut "keyspaceNotificationsConfigParameter" ke string kosong, perintah CONFIG yang tidak berfungsi di AWS Redis tidak dijalankan, tetapi dengan cara ini, Pemroses Peristiwa Kedaluwarsa dibuat.
Atribut ini membawa nilai default (Ex), yang menyebabkan perintah CONFIG dijalankan.
Ini terjadi dengan kode pegas berikut:
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);
}
Bagaimana kondisi ini tidak terpenuhi
if (StringUtils.hasText(keyspaceNotificationsConfigParameter)) {
perintah CONFIG tidak dijalankan.
Saya pikir Spring harus meningkatkan ini, dan tidak membuat aliran itu, berdasarkan pengaturan atribut dengan string kosong.
Satu-satunya hal yang juga diperlukan adalah bahwa dalam AWS ElastiCache (Redis) nilai diatur ke parameter "notify-keyspace-events", seperti AKE, yang berarti bahwa semua peristiwa akan diberi tahu.