split redis code off into other files, issue #60