Caching in Python con DiskCache
DiskCache è un'ottima libreria per Python per il caching di dati.
Molto usata anche Django, si crea un suo db su filesystem che si può condividere anche tra diverse applicazioni.
In questo articolo vediamo un paio di esempi.
Per l'installazione possiamo usare pip:
pip install diskcache
Qui sotto un primo esempio:
from time import sleep
from diskcache import Cache
cache = Cache('./my_cache')
cache['chiave1'] = 'valore1'
cache['numero'] = 42
cache['lista'] = [1, 2, 3, 4, 5]
print(cache['chiave1'])
print(cache['numero'])
if 'chiave1' in cache:
print("La chiave esiste!")
valore = cache.get('chiave_inesistente', 'default')
print(valore)
del cache['chiave1']
cache.set('chiave_temporanea', 'valore temp', expire=10)
sleep(15)
print(cache.get('chiave_inesistente', 'scaduta'))
cache.close()
Quello sleep serve per testare la scadenza.
Qui sotto un esempio in cui simuliamo una operazione lenta e la richiamiamo due volte:
from diskcache import Cache
import time
cache = Cache('./my_cache')
def operazione_lenta(n):
cache_key = f'risultato_{n}'
if cache_key in cache:
print(f"Risultato trovato in cache per n={n}")
return cache[cache_key]
print(f"Calcolo in corso per n={n}...")
time.sleep(2)
risultato = n * n
cache[cache_key] = risultato
return risultato
print(operazione_lenta(5))
print(operazione_lenta(5))
cache.close()
Potete vedere che la seconda esecuzione è molto più veloce della prima.
python pip diskcache
Commentami!