First pass at a Redis backend.
Changes in response to code review