UNPKG

thinknode

Version:

A fast, flexible and all-in-one web framework for node.js.

126 lines (87 loc) 3.29 kB
'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;