大佬教程收集整理的这篇文章主要介绍了Node.js,(Hi)Redis和多命令,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
npm install hiredis redis
我看了这里的多个例子:
https://github.com/mranney/node_redis/blob/master/examples/multi2.js
在第17行,它说
// you can re-run the same transaction if you like
这意味着一旦命令完成执行,内部multi.queue对象永远不会被清除.
我的问题是:你如何处理http环境中的情况?例如,跟踪最后连接的用户(这不需要多个,因为它只执行一个命令,但很容易遵循)
var http = require('http'); redis = require('redis'); client = redis.createClient() multi = client.multi(); http.createServer(function (request,responsE) { multi.set('lastconnected',request.ip); // won't work,just an example multi.exec(function(err,replies) { console.log(replies); }); });
在这种情况下,multi.exec将为第一个连接的用户执行1个事务,为第100个用户执行100个事务(因为永远不会清除内部multi.queue对象).
选项1:我应该在http.createServer回调函数中创建多对象,这会在函数执行结束时有效地终止它吗?创建和销毁这个对象的cpu周期有多贵?
选项2:另一个选项是创建一个新版本的multi.exec(),类似multi.execAndClear(),它将在redis执行那一堆命令时清除队列.
你会选择哪个选项?我认为选项1更好 – 我们正在杀死一个对象而不是挑选它的一部分 – 我只是想确定,因为我对节点和javascript都是全新的.
以上是大佬教程为你收集整理的Node.js,(Hi)Redis和多命令全部内容,希望文章能够帮你解决Node.js,(Hi)Redis和多命令所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。