worker: use redis hash for scale