add lru_cache and save data to redis