Nodejs in-memory storage

点点圈 提交于 2019-12-03 20:37:16

问题


How do I store data to be used for all the clients in my server? (like the messages of a chat)


回答1:


The server that node.js allows you to build, is an application server, which means that state is preserved, between request, on the server side. The following snippet demonstrates this:

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/');



回答2:


If you want more features have a look at redis-node-client




回答3:


Or use a native node storage mechanism (written in node.js)

http://github.com/felixge/node-dirty




回答4:


node-cache package is currently the best for key value store and it allows synchronous as well as async storage/retrieval/deletion of keys.

npm link




回答5:


I wrote Bx for this purpose; it gives you a simple in-memory cache with:

  • Key-value storage
  • Optional expiration on any stored data
  • Support for schemas using JSON-schema

Although I'm plugging my own repository here, I can assure you it works well and it's been used in production at my own company, Onshape for over a year without issues. At the end of the day it's a pretty simple tool; not much to mess up here.

However, if you're storing data that's meant to be permanent you're going to want a database such as MongoDB (w/ Mongoose), MySQL, etc. rather than a cache like Bx or Redis.



来源:https://stackoverflow.com/questions/2219333/nodejs-in-memory-storage

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!