Spring Boot mit Redis als Second-Level-Cache. Gibt es eine Möglichkeit, TTL für Cache-Einträge in Redis festzulegen, sodJava

Java-Forum
Guest
 Spring Boot mit Redis als Second-Level-Cache. Gibt es eine Möglichkeit, TTL für Cache-Einträge in Redis festzulegen, sod

Post by Guest »

Ich verwende Spring Boot 3.x mit Redis und Redisson als Second-Level-Cache. Während die Anwendung ausgeführt wird, funktioniert alles wie erwartet. Wenn die Anwendung jedoch gestoppt wird, bleiben die Cache-Einträge auf unbestimmte Zeit im Cache, da die Cache-Bereinigung auf der Clientseite von Redisson durchgeführt wird. TTL wird in der Datei application.yml konfiguriert.
Ist es möglich, auch auf der Redis-Seite eine TTL für Cache-Einträge zu konfigurieren, um sicherzustellen, dass der Cache auch dann geleert wird, wenn die Anwendung ausgeführt wird? läuft nicht?
Idealerweise sollte jeder einzelne Eintrag in einem Hash, der eine bestimmte Entität speichert, mit HEXPIRE markiert werden. Dies ist besonders wichtig, da wir aufgrund von abwärtsinkompatiblen Änderungen in unseren Entitäten planen, für jede Bereitstellung ein eindeutiges hibernate.cache.region_prefix zu verwenden.
Ich habe erwartet, dass die TTL in Redis festgelegt wird , aber es fehlt, was bestätigt, dass es tatsächlich von Redisson verwaltet wird:
Image

Code: Select all

spring:
jpa:
properties:
hibernate:
cache:
use_second_level_cache: true
region_prefix: l2_cache
region:
factory_class: org.redisson.hibernate.RedissonRegionFactory
redisson:
entity:
expiration:
time_to_live: 20000
max_idle_time: 20000
fallback: true
config: redisson.yml
< /code>
Entität: < /p>
@Entity
@Cacheable
@Cache(region = "someEntityCache", usage = CacheConcurrencyStrategy.READ_WRITE)
public class SomeEntity {

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post