Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Wyłącz redis, gdy wiele limitów czasu przy użyciu wiosennego rozruchu

Jeśli używasz Spring Data Redis, możesz wykorzystać wsparcie Spring do obsługi tymczasowych wyłączeń i wyjątków za pomocą niestandardowego programu obsługi wyjątków.

Kod:

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

Zalecamy ustawienie limitu czasu na niższy niż domyślny (60000):

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

Następnie utwórz niestandardowy program obsługi błędów w kontekście 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 powinien wykryć awarię po 100 milisekundach i wrócić do pobrania danych pobranych przez @Cacheable opatrzone adnotacjami metody normalnie tak, jakby wystąpił błąd w pamięci podręcznej. A za każdym razem, gdy pamięć podręczna zostanie przywrócona, Spring ponownie zacznie pobierać ją z pamięci podręcznej.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Konfigurowanie serwera proxy Apache Reverse do hostowania serwera Laravel Echo w środowisku produkcyjnym

  2. Jak wyłączyć Redis RDB i AOF?

  3. Czy jest jakaś zalecana wartość COUNT dla polecenia SCAN / HSCAN w REDIS?

  4. Jak sprawić, by Laravel działał z klastrem Redis na AWS

  5. Nie można załadować pliku lub zestawu System.Runtime.CompilerServices.Unsafe