Nodejs in memoria di archiviazione
Domanda
Come faccio a memorizzare i dati da utilizzare per tutti i clienti del mio server? (Come i messaggi di una chat)
Soluzione
Il server che Node.JS permette di costruire, è un application server, il che significa che lo stato è conservato, tra la richiesta, sul lato server. Il seguente frammento illustra questo:
var sys = require('sys'),
http = require('http');
var number = 0;
http.createServer(function (req, res) {
console.log(req.method, req.url);
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<h1>Number is: ' + number + '</h1>');
res.end();
number++;
}).listen(8000);
sys.puts('Server running at http://127.0.0.1:8000/');
Altri suggerimenti
Se vuoi più funzionalità di dare un'occhiata al Redis-node-client
In alternativa, utilizzare un meccanismo di archiviazione nodo nativo (scritto in node.js)
node-cache pacchetto è attualmente il migliore per archivio valore di chiave e permette sincrono nonché deposito asincrone / recupero / cancellazione di chiavi.
Bx a tale scopo; ti dà una semplice cache in memoria con:
- archiviazione chiave-valore
- scadenza opzionale su tutti i dati memorizzati
- Il supporto per gli schemi che utilizzano JSON-schema
Anche se io sto collegando il mio repository qui, io posso assicurare che funziona bene ed è stato utilizzato in produzione presso la mia società, Onshape per oltre un anno senza problemi. Alla fine della giornata è uno strumento piuttosto semplice; non molto da rovinare qui.
Tuttavia, se si sta memorizzazione di dati che è destinata ad essere permanente che si sta andando a voler un database come MongoDB (w / Mongoose) , MySQL , ecc piuttosto che una cache come Bx o < a href = "https://www.npmjs.com/package/redis" rel = "nofollow"> Redis .