Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Redis - Chỉ mục hết hạn không bị xóa

Tôi có thể tìm thấy giải pháp để xóa các khóa :phantom :idx .

Trong lớp cấu hình Redis, nên đặt như sau:

@Configuration
@EnableRedisRepositories(enableKeyspaceEvents = EnableKeyspaceEvents.ON_STARTUP, basePackages = {
    "com.aaaaa.bbbbb.persistence.model.repository" }, keyspaceNotificationsConfigParameter = "")

Khi bạn đặt thuộc tính "keyspaceNotificationsConfigParameter" thành chuỗi trống, lệnh CONFIG không hoạt động trong AWS Redis sẽ không được thực thi, nhưng theo cách này, Trình xử lý sự kiện hết hạn sẽ được khởi tạo.

Thuộc tính này mang lại một giá trị mặc định (Ví dụ), làm cho lệnh CONFIG được thực thi.

Điều này xảy ra bởi mã mùa xuân sau:

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);
}

Điều kiện này không được đáp ứng như thế nào

if (StringUtils.hasText(keyspaceNotificationsConfigParameter)) {

lệnh CONFIG không được thực thi.

Tôi nghĩ Spring nên cải thiện điều này và không làm cho dòng chảy đó xảy ra, dựa trên việc đặt một thuộc tính bằng một chuỗi trống.

Điều duy nhất cũng cần thiết là trong AWS ElastiCache (Redis), một giá trị được đặt thành tham số "thông báo-keyspace-sự kiện", chẳng hạn như AKE, có nghĩa là tất cả các sự kiện sẽ được thông báo.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis C # - Sử dụng giá trị Incr trong giao dịch

  2. Giới hạn độ dài danh sách trong redis

  3. Sử dụng Redis để tạo ID duy nhất từ ​​một phạm vi giới hạn

  4. RDBTools đã được mua lại bởi RedisLabs!

  5. ConnectionMultiplexer.Connect ngắt khi kết nối với máy chủ redis