code: function Cache(options) {
    options = options || {};
  
    if (!(this instanceof Cache)) {
      return new Cache(options);
    }
  
    if (typeof options === 'function'){
      options = { store: options };
    }
  
    _.defaults(options, defaults);
    var Store = options.store;
  
    this.ttl = options.ttl;
    this.tti = options.tti;
    this.store = new Store(options);
    this.stats = new CacheStats();
  }
docs: @private
  
  @description
  
  Cache abstractions
  A unified interface to different implementations of data caching.
  
  @param [store=MemoryStore]
  @param {number=} [ttl=5*60] - time to live in seconds
  @param {number=} [tti=5*60] - time to idle in seconds
  @params {object} options - cache configuration options
  @constructor