node.js 下使用 redis 作为缓存介质
发布于 9 年前 作者 zzhi191 4931 次浏览 最后一次编辑是 8 年前 来自 分享

之前有一篇介绍 node.js 下,轻量级缓存应用模块 node-cache

今天介绍使用 redis 作为缓存介质.

首先,我们需要一个 node.js 下可以访问 redis 的中间件,就是 node_redis

github地址:https://github.com/NodeRedis/node_redis

安装:

npm install --save redis

然后我们封装一个缓存类:

var redis = require('redis');
var config = require('../config');

////////////////////////////////////
// Cache
////////////////////////////////////


function Cache() {
    this._redis = this._redis ? this._redis : redis.createClient(config.redis.port, config.redis.host);
}

Cache.prototype.keys = function (k,fn) {
    this._redis.keys(k, fn);
}

Cache.prototype.get = function (k, fn) {
    this._redis.get(k, fn);
};

Cache.prototype.set = function (k, v, fn) {
    this._redis.set(k, v, fn);
};

Cache.prototype.expire = function (k, interval) {
    this._redis.expire(k, interval);
};

Cache.prototype.del = function (k, fn) {
    this._redis.del(k, fn);
};

Cache.prototype.hset = function (k, f, v, fn) {
    if (this._redis.hset === undefined) {
        fn(Error(), null);
    } else {
        this._redis.hset(k, f, v, fn);
    }
};

Cache.prototype.hget = function (k, f, fn) {
    if (this._redis.hget === undefined) {
        fn(Error(), null);
    } else {
        this._redis.hget(k, f, fn);
    }
};

Cache.prototype.multiDel = function (k, fn) {
    var multi = this._redis.multi();
    _.each(k, function (row) {
        multi.del(row);
    });
    multi.exec();
};

module.exports = Cache;

我们上面定义了一个存储类 Cache

构造函数

有一个私有变量 _redis ,我们暂时称作构造器,他是用来初始化redis连接对象的.

function Cache() {
    this._redis = this._redis ? this._redis : redis.createClient(config.redis.port, config.redis.host);
}

引用原文 :node.js下使用redis作为缓存的内容

3 回复
  • 格式化一下代码,你的代码是给人看的
  • 建议使用ioredis

@i5ting 好的,谢谢!

@zzhi191 这样看起来就很舒服,哈哈

回到顶部