add redis caching