Feature/custom redis backend

commit is written on top of #17, so it includes that diff until that pull request is merged.

(so merge that one first)