modules/jooby-jedis/src/main/java/org/jooby/jedis/RedisSentinel.java
@Override
    public void configure(Env env, Config config, Binder binder) {
        /**
         * Pool
         */
        GenericObjectPoolConfig poolConfig = poolConfig(config.getConfig("jedis.pool"));
        int timeout = (int) config.getDuration("jedis.timeout", TimeUnit.MILLISECONDS);

        List<String> hosts = config.getStringList("jedis.sentinel.hosts");
        if (hosts.size() < 1) throw new IllegalArgumentException("List of hosts (jedis.sentinel.hosts) can not be empty");
        final Set<String> sentinels = new HashSet<>(hosts);

        final String MASTER_NAME = config.getString("jedis.sentinel.master");
        final String REDIS_PASSWORD = config.getString("jedis.password");

        JedisSentinelPool pool;
        if (REDIS_PASSWORD.length() > 0) {
            pool = new JedisSentinelPool(MASTER_NAME, sentinels, poolConfig, timeout, REDIS_PASSWORD);
        } else {
            pool = new JedisSentinelPool(MASTER_NAME, sentinels, poolConfig, timeout);
        }

        RedisProvider provider = new RedisProvider(pool, null, poolConfig);
        env.onStart(provider::start);
        env.onStop(provider::stop);

        Env.ServiceKey serviceKey = env.serviceKey();
        serviceKey.generate(JedisSentinelPool.class, "db", k -> binder.bind(k).toInstance(pool));
    }
@Override
    public void configure(Env env, Config config, Binder binder) {
        /**
         * Pool
         */
        GenericObjectPoolConfig poolConfig = poolConfig(config.getConfig("jedis.pool"));
        int timeout = (int) config.getDuration("jedis.timeout", TimeUnit.MILLISECONDS);

        List<String> hosts = config.getStringList("jedis.sentinel.hosts");
        if (hosts.size() < 1) throw new IllegalArgumentException("List of hosts (jedis.sentinel.hosts) can not be empty");
        final Set<String> sentinels = new HashSet<>(hosts);

        final String MASTER_NAME = config.getString("jedis.sentinel.master");
        final String REDIS_PASSWORD = config.getString("jedis.password");

        JedisSentinelPool pool;
        if (REDIS_PASSWORD.length() > 0) {
            pool = new JedisSentinelPool(MASTER_NAME, sentinels, poolConfig, timeout, REDIS_PASSWORD);
        } else {
            pool = new JedisSentinelPool(MASTER_NAME, sentinels, poolConfig, timeout);
        }

        RedisProvider provider = new RedisProvider(pool, null, poolConfig);
        env.onStart(provider::start);
        env.onStop(provider::stop);

        Env.ServiceKey serviceKey = env.serviceKey();
        serviceKey.generate(JedisSentinelPool.class, "db", k -> binder.bind(k).toInstance(pool));
    }
<p>
Creates a new {@link RedisSentinel} instance and connect to the provided database. Please note, the
name is a property in your <code>application.conf</code> file with Redis URI.
RedisSentinel is pool of Jedis and for get Jedis just call pool.getResource()
</p>

<pre>
{
use(new RedisSentinel("db1"));
}
</pre>

application.conf

<pre>
jedis.sentinel.hosts = ["localhost:26379", "host2:26379"]
jedis.sentinel.master = "master"
jedis.password = "mySuperSecretPasswordPutHere"
</pre>

Example:
<pre>
try (Jedis redis = request.require(JedisSentinelPool.class).getResource()) {
System.out.println( redis.set("test", "this is work") );
System.out.println( redis.get("test");
} catch (Exception e) {
e.printStackTrace();
}
</pre>