Utilizzare RocksDB in Node.js
RocksDB è un database embedded key-value ad alte prestazioni sviluppato da Meta (Facebook).
È basato su LevelDB di Google, ma con numerose ottimizzazioni e funzionalità aggiuntive.
RocksDB è progettato per applicazioni che richiedono accesso rapido ai dati su storage locale (SSD o dischi fissi) con grandi volumi di scritture e letture.
Viene usato principalmente come motore di storage sottostante per sistemi più complessi, piuttosto che come database standalone.
In questo articolo vediamo come usarlo in Node.js usando una libreria apposita: rocksdb!
Potete installarla tramite npm:
npm install rocksdb
Qui sotto un pò di codice:
const rocksdb = require('rocksdb');
const path = './my_db';
const db = rocksdb(path);
db.open({ createIfMissing: true }, async (err) => {
if (err) throw err;
console.log("Database aperto con successo");
try {
await put(db, 'key1', 'value1');
await put(db, 'key2', 'value2');
console.log("Dati inseriti");
db.get('key1', (err, value) => {
if (err) {
if (err.notFound) console.log("Key not found");
else throw err;
} else {
console.log(`Retrieved: ${value.toString()}`);
}
});
console.log("Iterazione in corso:");
const iterator = db.iterator({ gte: 'key1' });
const next = () => {
iterator.next((err, key, value) => {
if (err) throw err;
if (!key && !value) {
return iterator.end(() => {
db.del('key1', (err) => {
if (err) throw err;
console.log("Chiave 'key1' eliminata");
db.close(() => console.log("DB chiuso"));
});
});
}
console.log(`${key.toString()}: ${value.toString()}`);
next();
});
};
next();
} catch (error) {
console.error("Errore:", error);
}
});
function put(db, key, value) {
return new Promise((resolve, reject) => {
db.put(key, value, (err) => {
if (err) reject(err);
else resolve();
});
});
}
Enjoy!
javascript nodejs npm rocksdb
Commentami!