Le applicazioni web utilizzano caching per velocizzare le risposte e ridurre il carico sul server o sul database. La cache può trovarsi a livello cliente (browser), applicazione, database o separatamente (Redis, Memcached).
Particolarità:
Esempio di codice (Python utilizzando Redis):
import redis r = redis.Redis(host='localhost', port=6379, db=0) def get_user(id): cache_key = f'user:{id}' user = r.get(cache_key) if user: return user else: user = get_user_from_db(id) r.setex(cache_key, 60, user) # Cache per 60 secondi return user
Caratteristiche chiave:
Perché impostare il TTL sulla cache, se i dati sono strutturati come permanenti?
Anche i dati "permanenti" possono cambiare (ad esempio, correzioni). Il TTL protegge da errori e inconsistenza.
Il caching di tutto ciò che è possibile aiuterà ad accelerare il sistema?
No. Il caching eccessivo porta al riempimento della memoria e a difficoltà nella gestione dei dati obsoleti.
Cosa succederà se non implementiamo un meccanismo di pulizia della cache quando i dati vengono modificati?
Gli utenti riceveranno dati vecchi e obsoleti, non corrispondenti allo stato reale del sistema.