added redis caching