add redis sentinel support and custom shard key generate function

```
sentinel_settings = {
    "servers": [
        {'name': 'mymaster'},
    ],
    "sentinel": {"hosts": [('localhost', 26379)]}
}
```