Nodejs内存存储

26

我应该如何存储数据以供服务器中的所有客户端使用?(例如聊天消息)

4个回答

32

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

这个例子向我展示了:数字是0,数字是2,数字是4,数字是6等等,非常可靠。没有其他人在访问。托管在nodester.com上。你有什么想法?! - Thomas David Baker
10
@Thomas David Baker,是的,浏览器会对favicon.ico发出额外的请求。我已经修改了片段以支持最新版本的node,并在控制台中记录了请求方法和URL。现在看一下。它应该会显示类似于每个其他请求之间的“GET /favicon.ico”。 - Ionuț G. Stan
有多少状态将被保留?我可以设置一个值吗? - user482594
4
在集群中运行应用程序时,使用此示例要小心。由于应用程序变量是局部的,您无法在应用程序集群之间维护状态。 - jwerre

12

node-cache 包是目前最好的键值存储方式,它允许同步和异步存储/检索/删除键。

npm 链接


6

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接