added redis cache support
tests for available cache backends, refactoring to fix circular import bug