get(key) {
		this.logger.debug(`GET ${key}`);
		this.metrics.increment(METRIC.MOLECULER_CACHER_GET_TOTAL);
		const timeEnd = this.metrics.timer(METRIC.MOLECULER_CACHER_GET_TIME);

		if (this.cache.has(key)) {
			this.logger.debug(`FOUND ${key}`);
			this.metrics.increment(METRIC.MOLECULER_CACHER_FOUND_TOTAL);

			let item = this.cache.get(key);
			if (item.expire && item.expire < Date.now()) {
				this.logger.debug(`EXPIRED ${key}`);
				this.metrics.increment(METRIC.MOLECULER_CACHER_EXPIRED_TOTAL);
				this.cache.delete(key);
				timeEnd();
				return this.broker.Promise.resolve(null);
			}
			const res = this.clone ? this.clone(item.data) : item.data;
			timeEnd();

			return this.broker.Promise.resolve(res);
		} else {
			timeEnd();
		}
		return this.broker.Promise.resolve(null);
	}
Get data from cache by key

@param {any} key
@returns {Promise}

@memberof MemoryCacher