add command gpublish;support group pubsub message;support cache (g)publish message;add util func listGetRandomNode