IBM 看到的blog如何 存储在redis种
var ArticleHelper = function () {
this.ArticleIDSet = "AIDSet"; // 存放文章 ID 的集合 this.ArticleIDPrefix = "Article"; // 文章 KEY 前缀
this.CommentIDPrefix = "Comment"; // 评论 KEY 前缀
}; ArticleHelper.prototype.getArticleIDs = function(){
var that = this;
var promise = ArticleMySQLHelper.getIDs().then(function (artis) {
if(artis.length == ) {
return null;
}
var _ = [];
artis.forEach(
function(arti) {
_.push(redis.zaddAsync(that.ArticleIDSet, [, arti.ID]));
}
);
return Q.all(_);
});
return promise;
};
//取数据
ArticleHelper.prototype.getArticle = function(id){
var that = this;
var promise = redis.hgetallAsync(that.ArticleIDPrefix+id).then(function(res) {
if (res == null) {
return ArticleMySQLHelper.getOne(id).then(function(article) {
return redis.hmsetAsync(that.ArticleIDPrefix+id, article). then(function(res) {
return Q.resolve(article);
});
});
} else {
return Q.resolve(res);
}
});
return promise;
}//获取评论
ArticleHelper.prototype.getComment = function(id) {
var that = this;
var promise = redis.zrangeAsync(that.CommentIDPrefix+id, [, -]).then(function(res) {
if (res == null) {
var p = ArticleMySQLHelper.getComments(id).then(function(cmmts) {
var _ = []; cmmts.forEach(function(cmmt) {
_.push(redis.zaddAsync(that.CommentIDPrefix+id,[cmmt.index, cmmt.body])); });
return Q.all(_);
});
return p;
} else {
return Q.resolve(res);
}
})
return promise;
}
//添加评论
ArticleHelper.prototype.addComment = function(id, comment) {
var that = this;
var promise = ArticleMySQLHelper.saveComment(id, comment).then(function(res){
return redis.expireAsync(that.ArticleIDPrefix+id, []); });
return promise;
};//评论过期
ArticleHelper.prototype.getArticleExpire = function(id) {
var that = this;
var promise = redis.hgetallAsync(that.ArticleIDPrefix+id).then(function(res) {
if (res == null) {
return ArticleMySQLHelper.getOne(id).then(function(article) {
return redis.hmsetAsync(that.ArticleIDPrefix+id, article).then(function(res) {
return redis.expireAsync(that.ArticleIDPrefix+id, *);
}).then(function(){ return Q.resolve(article);
});
});
} else {
return Q.resolve(res);
}
});
return promise;
}
####这是用到的redis 命令
zadd
zrange
hgetall
hget
hmset
hmget
expire
https://www.ibm.com/developerworks/cn/opensource/os-cn-nodejs-redis/index.html
https://redis.io/commands/hmset