Armazenamento na memória do Nodejs
Pergunta
Como armazeno dados para serem usados por todos os clientes do meu servidor?(como as mensagens de um chat)
Solução
O servidor que o node.js permite construir é um servidor de aplicativos, o que significa que o estado é preservado, entre solicitações, no lado do servidor.O trecho a seguir demonstra isso:
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/');
Outras dicas
Se você quiser mais recursos, dê uma olhada em redis-nó-cliente
Ou use um mecanismo de armazenamento de nó nativo (escrito em node.js)
cache de nó O pacote é atualmente o melhor para armazenamento de valores de chave e permite armazenamento/recuperação/exclusão síncrona e assíncrona de chaves.
escrevi Bx para este fim;fornece um cache simples na memória com:
- Armazenamento de valor-chave
- Expiração opcional em quaisquer dados armazenados
- Suporte para esquemas usando esquema JSON
Embora eu esteja conectando meu próprio repositório aqui, posso garantir que ele funciona bem e tem sido usado em produção na minha própria empresa, Em forma por mais de um ano sem problemas.No final das contas, é uma ferramenta bastante simples;não há muito o que bagunçar aqui.
No entanto, se você estiver armazenando dados que devem ser permanentes, você vai querer um banco de dados como MongoDB (com Mongoose), MySQL, etc.em vez de um cache como Bx ou Redis.