Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Nonaktifkan redis ketika banyak waktu habis menggunakan boot pegas

Jika Anda menggunakan Spring Data Redis, Anda dapat memanfaatkan dukungan Spring untuk menangani pemadaman dan pengecualian sementara ini melalui penangan pengecualian khusus.

Kode:

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

Merekomendasikan untuk mengatur batas waktu lebih rendah dari default (60000):

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

Kemudian buat penangan kesalahan khusus dalam konteks Musim Semi:

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

}

Pegas harus mendeteksi kegagalan setelah 100 milidetik dan mundur untuk mengambil data yang diambil melalui @Cacheable metode beranotasi secara normal seolah-olah ada cache-miss. Dan setiap kali cache dipulihkan, Spring akan mulai menarik dari cache lagi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cara memindahkan data dari mysql ke redis

  2. Kesalahan saat menjalankan skrip Lua dari klien redis

  3. Seledri/Redis tugas yang sama dieksekusi beberapa kali secara paralel

  4. Docker&Celery - ERROR:Pidfile (celerybeat.pid) sudah ada

  5. Cara menganalisis dan mengoptimalkan penggunaan memori di Redis