
💾 ¿Necesitás caché persistente en Python sin montar Redis ni Memcached? DiskCache lo hace en una línea.
diskcache es una librería Python de código abierto (Apache 2) que usa SQLite + archivos mapeados en memoria para ofrecer caché en disco más rápida que soluciones en memoria clásicas.
⚡ ¿Más rápido que Memcached?
# Memcached
%timeit client[b'key']
# → 25.4 µs por loop
# DiskCache
%timeit cache[b'key']
# → 11.8 µs por loopSí, DiskCache es más rápido que Memcached en lectura local.
🔧 Uso básico:
import diskcache as dc
cache = dc.Cache('tmp')
cache['key'] = 'value'
print(cache['key']) # 'value'
# Con memoización anti-stampede
from diskcache import memoize_stampede
@memoize_stampede(cache, expire=60)
def costosa(param):
return calcular_algo(param)✨ Características:
- Thread-safe y process-safe (ideal para multiprocessing)
- Políticas de evicción: LRU, LFU y más
- Compatible con Django como backend de caché
- Deque y Dict persistentes entre procesos
- Lock y throttle cross-process
💡 Explicación en pocas palabras#
DiskCache almacena los valores en SQLite (para las claves pequeñas) o en archivos del sistema de archivos (para valores grandes). Como usa memoria mapeada, las lecturas no requieren copiar datos entre procesos. Esto lo hace sorprendentemente rápido para un caché en disco, y completamente persistente entre reinicios sin necesidad de un servidor separado.
Más información en el link 👇
