code: function CacheManager (options) {
    options = options || {};
  
    options.ttl = Number(options.ttl);
    if (isNaN(options.ttl)) options.ttl = DEFAULT_TTL;
  
    if (!options.store) {
      options.store = new MemoryStore();
    }
    if (typeof options.store === 'string') {
      options.store = getDefaultStore(options.store, options.storeConfig);
    }
    if (typeof options.store.get !== 'function') {
      throw new Error('store engine must implement `get` method');
    }
    if (typeof options.store.set !== 'function') {
      throw new Error('store engine must implement `set` method');
    }
    if (typeof options.store.delete !== 'function') {
      throw new Error('store engine must implement `delete` method');
    }
  
    debug('create: ttl=%s', options.ttl);
    this._ttl = options.ttl;
    this._store = options.store;
  
    this._keys = {};
    this._fuzzyKeys = [];
  
    this._getMethodQueue = new CallQueue();
  }
docs: CacheManager
  
  @param {Object} options
  - {Object|String} store
  - {Object} storeConfig
  - {Number} ttl