मैं :phantom की चाबियों को हटाने का समाधान ढूंढ सकता हूं और :idx ।
रेडिस कॉन्फ़िगरेशन क्लास में, निम्नलिखित को रखा जाना चाहिए:
@Configuration
@EnableRedisRepositories(enableKeyspaceEvents = EnableKeyspaceEvents.ON_STARTUP, basePackages = {
"com.aaaaa.bbbbb.persistence.model.repository" }, keyspaceNotificationsConfigParameter = "")
जब आप "keyspaceNotificationsConfigParameter" एट्रिब्यूट को खाली स्ट्रिंग पर सेट करते हैं, तो CONFIG कमांड जो AWS Redis में काम नहीं करती है, निष्पादित नहीं होती है, लेकिन इस तरह, समाप्ति इवेंट लिसनर को इंस्टेंट किया जाता है।
यह विशेषता एक डिफ़ॉल्ट मान (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 कमांड निष्पादित नहीं होता है।
मुझे लगता है कि खाली स्ट्रिंग वाली विशेषता सेट करने के आधार पर स्प्रिंग को इसमें सुधार करना चाहिए, न कि उस प्रवाह को बनाना चाहिए।
केवल एक चीज जिसकी भी जरूरत है वह यह है कि AWS ElastiCache (Redis) में एक मान "सूचना-कीस्पेस-ईवेंट" पैरामीटर पर सेट होता है, जैसे कि AKE, जिसका अर्थ है कि सभी घटनाओं को अधिसूचित किया जाएगा।