Nice! Out of curiosity, are you using Python 2 or 3? The code indicates 2, which leads to another question: maybe try upgrading to 3? :)
Moreover, one huge improvement would be to decouple Redis as a dependency from both adapters. Not all servers have Redis onboard, and I think for this particular use case memory cache (e.g. a shared dict) could be as efficient. Ideally, when running the application it could be specified which cache backend you want to use.
WDYT?
I agree with you on both of your points. I have needed a quick solution so I did how I feel most comfortable.