add redis cache support