thinknode
Version:
A fast, flexible and all-in-one web framework for node.js.
126 lines (87 loc) • 3.29 kB
JavaScript
'use strict';
exports.__esModule = true;
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _Cache = require('./Cache');
var _Cache2 = _interopRequireDefault(_Cache);
var _MemcacheSocket = require('../Socket/MemcacheSocket');
var _MemcacheSocket2 = _interopRequireDefault(_MemcacheSocket);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
* @author richen
* @copyright Copyright (c) 2015 - <richenlin(at)gmail.com>
* @license MIT
* @version 15/12/3
*/
var _class = function (_cache) {
(0, _inherits3.default)(_class, _cache);
function _class() {
(0, _classCallCheck3.default)(this, _class);
return (0, _possibleConstructorReturn3.default)(this, _cache.apply(this, arguments));
}
_class.prototype.init = function init(options) {
_cache.prototype.init.call(this, options);
var key = THINK.hash(this.options.memcache_host + '_' + this.options.memcache_port);
if (!(key in THINK_CACHES.INSTANCES.CACHE)) {
THINK_CACHES.INSTANCES.CACHE[key] = new _MemcacheSocket2.default(this.options);
}
this.handle = THINK_CACHES.INSTANCES.CACHE[key];
};
/**
*
* @param name
*/
_class.prototype.get = function get(name) {
return this.handle.wrap('get', [this.options.cache_key_prefix + name]);
};
/**
*
* @param name
* @param value
* @param timeout
*/
_class.prototype.set = function set(name, value) {
var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.options.cache_timeout;
return this.handle.wrap('set', [this.options.cache_key_prefix + name, (0, _stringify2.default)(value), timeout]);
};
/**
*
* @param name
*/
_class.prototype.rm = function rm(name) {
return this.handle.wrap('del', [this.options.cache_key_prefix + name]);
};
/**
* 设置key超时属性
* @param name
* @param timeout
*/
_class.prototype.expire = function expire(name) {
var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.cache_timeout;
return this.handle.wrap('touch', [this.options.cache_key_prefix + name, timeout]);
};
/**
* 自增
* @param name
*/
_class.prototype.incr = function incr(name) {
return this.handle.wrap('incr', [this.options.cache_key_prefix + name, 1]);
};
/**
* 自减
* @param name
* @returns {*}
*/
_class.prototype.decr = function decr(name) {
return this.handle.wrap('decr', [this.options.cache_key_prefix + name, 1]);
};
return _class;
}(_Cache2.default);
exports.default = _class;