Как хранить данные, которые будут использоваться всеми клиентами на моем сервере? (например, сообщения чата)
Хранение в памяти Nodejs
Ответы (5)
Сервер, который позволяет построить node.js, является сервером приложений, что означает, что состояние сохраняется между запросами на стороне сервера. Следующий фрагмент демонстрирует это:
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/');
GET /favicon.ico
между каждым другим запросом.
- person Ionuț G. Stan; 19.04.2011
Пакет node-cache в настоящее время лучше всего подходит для хранения значений ключей и позволяет как синхронное, так и асинхронное хранение/извлечение/удаление ключей.
Если вам нужны дополнительные функции, посмотрите redis-node-client.
Или используйте собственный механизм хранения узлов (написанный в node.js)
http://github.com/felixge/node-dirty
Для этой цели я написал Bx; он дает вам простой кеш в памяти с:
- Хранилище ключей-значений
- Необязательный истечение срока действия любых сохраненных данных
- Поддержка схем с использованием JSON-схемы
Хотя я подключаю сюда свой собственный репозиторий, я могу заверить вас, что он работает хорошо и использовался в производстве в моей собственной компании, Onshape уже больше года без проблем. В конце концов, это довольно простой инструмент; не так много, чтобы испортить здесь.
Однако, если вы храните данные, которые должны быть постоянными, вам понадобится база данных, такая как MongoDB (с Mongoose), MySQL и т. д., а не кэш, например Bx или Redis.