我想在以 redis 作为后端的 nodejs中实现 Martin Flower 的《企业应用程序架构模式》一书中的序列生成器组件。
例如。
var redisClient = ...;
var count = redisClient.get('count');
var stepSize = 1000;
var initCount = 0;
count = count ? count : initCount;
var counterMax = count + stepSize;
redisClient.set('count', counterMax);
var counter = function(){
++count;
if(count>=counterMax){
counterMax = count + stepSize;
redisClient.set('count', counterMax);
}
return count;
}
module.exports = {
nextValue: counter
}
在我的客户中,我将使用:
var seq = require(./sequence);
app.get('/', function(req, res){
var token = seq();
if( req.cookies.userToken ){
res,cookie( 'userToken', token );
}
....
});
我需要以阻塞方式而不是异步方式访问nodejs中的redis,有办法吗?如何?