add redis sentinel support and custom shard key generate function

``servers`` is a list. Each element in it should be a dict or a URL schema.

"element can have format" 有语法问题。