python - ¿Hay alguna base de datos de archivos planos nosql como sqlite?
database caching (3)
Pregunta corta: ¿Existe alguna base de datos de archivos planos nosql disponible como sqlite?
Explicación: la base de datos de archivos planos se puede abrir en diferentes procesos para leer y mantener un proceso para escribir. Creo que es perfecto para leer la memoria caché si no se necesita una estricta coherencia. Diga 1-2 segundos, escriba en el archivo o incluso en el bloque de memoria y los lectores obtendrán datos actualizados después de eso.
Así que casi elijo usar sqlite, ya que mi servidor de Python lee el caché. Pero todavía hay un problema. No me gusta volver a escribir sqls en otro lugar y construir otra copia de mis tablas de datos en sqlite como lo hice en PostgreSql que usé como base de datos de back-end.
entonces, ¿hay alguna otra opción? gracias!
Algo trivial pero viable, si está buscando una estructura de datos de valor clave respaldada por el almacenamiento, utilice un diccionario encurtido. Utilice cPickle para un mejor rendimiento si es necesario.
BerkeleyDB es una base de datos incrustada ampliamente utilizada que ha existido desde siempre (originalmente derivada de la biblioteca de bases de datos incluida en BSD, de ahí su nombre) y tiene excelentes características de rendimiento para muchos casos de uso (y el almacenamiento en caché es un uso frecuente) tiene algunas limitaciones significativas
Si desea usarlo con Python, probablemente querrá la biblioteca pybsddb / bsddb3
mantenida externamente , no la biblioteca bsddb
obsoleta incluida en Python 2.x (y ya no en 3.x).
Actualmente es propiedad de Oracle, pero está disponible bajo una licencia de código abierto. Preste especial atención a los términos de la licencia; las versiones actuales son GPLish (y compatibles con GPL), así que asegúrese de que sea compatible con lo que planea hacer.
Más información:
Tal vez shelve
? Básicamente es un almacén de valor clave donde puede almacenar objetos de Python. http://docs.python.org/library/shelve.html
¿O tal vez podrías usar el sistema de archivos?