Redis
 sql >> Database >  >> NoSQL >> Redis

Qual è la strategia cache predefinita quando si utilizza Redis con l'avvio a molla oa molla?

Per impostazione predefinita, metti da parte la cache, il nostro utilizzo della cache nell'app Spring Boot è simile a questo

@Cacheable(cacheNames = "someCache")
public String cacheThis(String id){
    return "this Is it";
}

Nella maggior parte degli scenari nell'app di avvio primaverile, memorizziamo nella cache il risultato di JPA o altre query DB. In questi casi, aggiungiamo Cacheable sul metodo di query, che ci offre la funzionalità cache a parte.

Un'applicazione può emulare la funzionalità della cache read-through implementando la strategia cache-aside. Questa strategia carica i dati nella cache su richiesta.

Rif:https://docs.microsoft.com/en-us/azure/architecture/patterns/cache-aside

L'utilizzo del pattern cache aside non è sempre la soluzione a un problema, a seconda del caso d'uso potrebbe essere necessario modificare la strategia di memorizzazione nella cache. La modifica della strategia di memorizzazione nella cache non è semplice, tranne alcune annotazioni che conosciamo dal framework Spring come

  • Memorizzabile nella cache
  • CacheEvict
  • CachePut

È necessario aggiornare il codice dell'applicazione per utilizzare altre strategie di memorizzazione nella cache, sebbene sia possibile creare qualsiasi strategia di memorizzazione nella cache utilizzando queste annotazioni. Se non ti piace usare queste annotazioni, gioca con l'oggetto cache reale, in qualsiasi momento puoi chiamare i metodi Cache per modificare la cache.

ad esempio

Cache myCache = cacheManager.getCache("myCache"); 

Una volta che hai un oggetto cache, puoi chiamare tutti i metodi pertinenti, alcuni metodi potrebbero non funzionare come previsto a causa della limitazione della cache sottostante.