add redis sentinel support and custom shard key generate function

```
settings = {
    'servers': [
        {'name': 'server1', 'host': '127.0.0.1', 'port': 10000, 'db': 0},
        {'name': 'server2', 'host': '127.0.0.1', 'port': 11000, 'db': 0},
        {'name': 'server3', 'host': '127.0.0.1', 'port': 12000, 'db': 0},
    ],
    'hash_method': 'md5',
}
```