initial implementation, uses Redis as dumb object cache