Colección de citas famosas - Consulta de diccionarios - ¿En qué archivos se compone la base de datos LevelDB en el disco?

¿En qué archivos se compone la base de datos LevelDB en el disco?

Los siguientes ejemplos demuestran cómo insertar, obtener y eliminar registros.

Introducción a LevelDB

1. Introducción a LevelDB

LevelDB es la base de datos independiente KV persistente de código abierto de Google. Tiene un alto rendimiento de escritura aleatoria y lectura/escritura secuencial, pero el rendimiento de lectura aleatoria es muy promedio, lo que significa que LevelDB es muy adecuado para A. escenario donde hay pocas consultas pero muchas escrituras. LevelDB adopta la estrategia LSM (fusión estructurada de registros). lsm_tree retrasa y agrupa los cambios de índice y migra eficientemente las actualizaciones al disco de una manera similar a la clasificación por fusión, lo que reduce la sobrecarga de inserción de índice. Con respecto a LSM, también se mencionará brevemente más adelante en este artículo.

Según la descripción en el sitio web oficial de LevelDB, las características y limitaciones de LevelDB son las siguientes:

Características:

1. matrices de bytes de longitud arbitraria. ;

2. De forma predeterminada, las entradas (es decir, registros K-V) se almacenan en el orden de claves del diccionario. Por supuesto, los desarrolladores también pueden sobrecargar esta función de clasificación.

3. Interfaces de operación básicas proporcionadas: Put(), Delete(), Get(), lote();

4. Admite operaciones atómicas y por lotes;

5. Puede crear una instantánea del panorama de datos y permitirle encontrar datos dentro de la instantánea;

6. Puede recorrer los datos a través de un iterador directo (o inverso) (el iterador lo hará). implícitamente para crear instantáneas);

7. Usar Snappy automáticamente para comprimir datos;

8. Portabilidad;

Limitaciones:

1. , Modelo de datos no relacional (Nosql), no admite sentencias o índices sql;

2. Solo se permite que un proceso acceda a una base de datos específica a la vez; No existe una arquitectura C/S incorporada, pero los desarrolladores pueden usar la biblioteca LevelDB para empaquetar el servidor.

LevelDB en sí es solo una biblioteca lib, que se puede compilar en el directorio fuente make, y luego el archivo de encabezado leveldb/include/db.h se puede incluir directamente en nuestra aplicación.

El archivo de encabezado tiene varias interfaces de operación de base de datos básicas. El siguiente es un ejemplo de prueba:

# include & ltiostream & gt

# include & ltstring& gt

#. include & ltassert.h & gt

#Include "leveldb/db.h"

Usar espacio de nombres std

int main(void)

{

nivel DB::DB * DB;

niveldb::Opciones

opciones crear _ si _ falta = verdadero;

p>

//Abrir

nivel DB::Estado Estado = nivel DB::DB::Abrir(opciones "/tmp/testdb", & ampdb);

afirmar(status.ok());

string key="nombre";

String value="Chen Qi";

//Escribir

estado = db-> put(nivel db::escribir opciones(), clave, valor);

assert(status. ok()); //Leer

estado = db->get(nivel db::leer opciones(), clave y valor);

afirmar(status.ok());

cout<<value<<endl

//Eliminar

status = db->delete( nivel db::opciones de escritura(),clave);

afirmar(status.ok());

status = db->get(nivel db::read options (), clave y valor);

if (!status. ok())

cerr & lt& ltkey & lt& lt"""<& ltstatus.ToString()<& ltendl

}else {

cout & lt& ltkey & lt& lt" = = ="< >}

//Cerrar

Eliminar la base de datos;

Devolver 0;