2014-05-23 9 views
11

Sto facendo un po 'di manipolazione di file con node.js e molti dei pacchetti che uso richiedono un "percorso" da inviare in modo che possano aprire il file, fare un po' di lavoro e così via.Posso archiviare un file in "memoria" con Node.js?

Ma sto analizzando milioni di file e invece di memorizzarli sul disco, mi piacerebbe memorizzarli in memoria. I contenuti dei file sono tutti nel mio database e odio scriverli su disco, solo per fare il mio lavoro follemente fantastico su di loro.

Quindi è possibile una cosa del genere?

+1

è possibile copiare il file in/dev/shm (o/tmp se il suo tmpfs) all'avvio, quindi resettare il risultato finale –

+0

Questo suona come il caching, una ricerca rapida mi ha portato a questo? https://www.npmjs.org/package/node-cache. Oltre alla risposta di @guido, scriverlo in una direttiva tmp. Il problema con l'uso di pacchetti che richiedono un "percorso" è che sono stati implementati usando librerie di I/O. Quindi, per usare una soluzione di memoria, dovresti anche evitare queste librerie. –

+0

Non conosco la dimensione dei tuoi file, ma di sicuro non sarai in grado di memorizzare completamente tutti i tuoi dati nella memoria (RAM). – 0101

risposta

5

Sembra che sia possibile dare un'occhiata a questo articolo come farlo creating writable memory stream

+0

Ma cosa devo passare ai pacchetti che hanno bisogno di un percorso file? – Shamoon

+0

Crea un file temporaneo quindi elimina – user3210416

+1

Cerca librerie alternative che siano più compatibili con lo stream. – Joe

3

Perché io non ho trovato una singola libreria che adatta alle mie esigenze, ho creato diskette. È una piccola libreria che tenta di archiviare in modo efficiente dati come buffer e stringhe e renderla scorrevole. Lo uso nei miei progetti e finora funziona come un fascino.

Per favore fatemi sapere se avete trovato un bug o se c'è qualcosa di più che può essere aggiunto ad esso.

3

È possibile utilizzare memfs, che è un file system in memoria per Node.js.

Problemi correlati