Implement a data repository with two backends: in-memory and Redis (for now)