avoid redis dependency