improve redis-pubsub singleton