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

Tắt redis khi nhiều lần hết thời gian sử dụng khởi động lò xo

Nếu bạn đang sử dụng Spring Data Redis, bạn có thể tận dụng sự hỗ trợ của Spring để xử lý các trường hợp ngừng hoạt động tạm thời và ngoại lệ này thông qua trình xử lý ngoại lệ tùy chỉnh.

Mã:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

Bạn nên đặt thời gian chờ thấp hơn mặc định (60000):

spring.cache.type=redis
spring.redis.timeout=100

Sau đó, tạo một trình xử lý lỗi tùy chỉnh trong ngữ cảnh Spring:

import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.Cache;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.CacheErrorHandler;
import org.springframework.context.annotation.Configuration;

@Slf4j
@EnableCaching
@Configuration
public class CacheConfiguration extends CachingConfigurerSupport {

    @Override
    public CacheErrorHandler errorHandler() {
        return new CacheErrorHandler() {
            @Override
            public void handleCacheGetError(RuntimeException exception, Cache cache, Object key) {
                log.info("Failure getting from cache: " + cache.getName() + ", exception: " + exception.toString());
            }

            @Override
            public void handleCachePutError(RuntimeException exception, Cache cache, Object key, Object value) {
                log.info("Failure putting into cache: " + cache.getName() + ", exception: " + exception.toString());
            }

            @Override
            public void handleCacheEvictError(RuntimeException exception, Cache cache, Object key) {
                log.info("Failure evicting from cache: " + cache.getName() + ", exception: " + exception.toString());
            }

            @Override
            public void handleCacheClearError(RuntimeException exception, Cache cache) {
                log.info("Failure clearing cache: " + cache.getName() + ", exception: " + exception.toString());
            }
        };
    }

}

Spring sẽ phát hiện lỗi sau 100 mili giây và dự phòng để truy xuất dữ liệu được truy xuất qua @Cacheable các phương thức chú thích bình thường như thể có lỗi bộ nhớ cache. Và bất cứ khi nào bộ đệm được khôi phục, Spring sẽ bắt đầu kéo lại từ bộ đệm.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis đang ghi vào .ssh / allow_keys

  2. Làm thế nào để triển khai một luồng tương lai cho cuộc gọi chặn bằng futures.rs và Redis PubSub?

  3. Chèn hàng loạt Redis

  4. Thêm ngày hết hạn vào Redis Cache

  5. Mục đích và mô tả của Redis Client List