Provides easy integration for Dropwizard applications with Redis.
This bundle comes with out-of-the-box support for:
- Configuration
 - Clientlifecycle management
 - Client health checks
 - Metrics integration
 
For more information on Redis, take a look at the official documentation here: https://redis.io/documentation
For More information on the Redis client used (Jedis), see: https://github.com/xetorthio/jedis
- Distributed tracing instrumentation for Jedis.
 - Support for the pooled Jedis client
 - Support for the sentinel Jedis client
 - SSL support for the cluster Jedis client (once Jedis supports this)
 
Add dependency on library.
Maven:
<dependency>
  <groupId>io.dropwizard.modules</groupId>
  <artifactId>dropwizard-redis</artifactId>
  <version>1.3.12-1</version>
</dependency>
Gradle:
compile "io.dropwizard.modules:dropwizard-redis:1.3.12-1"
In your Dropwizard configuration class, configure a RedisClusterClientFactory
@Valid
@NotNull
@JsonProperty
private RedisClusterClientFactory redis;
In your Dropwizard Configuration class, configure a RedisClusterClientFactory:
@Valid
@NotNull
@JsonProperty("redis-cluster")
private RedisClusterClientFactory redisClusterClientFactory;Then, in your Application class, you'll want to do something similar to the following:
private final RedisClusterClientBundle<ExampleConfiguration> redisCluster = new RedisClusterClientBundle<ExampleConfiguration>() {
    @Override
    public RedisClusterClientFactory getRedisClusterClientFactory(ExampleConfiguration configuration) {
        return configuration.getRedisClusterClientFactory();
    }
};
@Override
public void initialize(Bootstrap<ExampleConfiguration> bootstrap) {
    bootstrap.addBundle(redisCluster);
}
@Override
public void run(ExampleConfiguration config, Environment environment) {
    final PersonCache personCache = new personCache(kafkaProducer.getClusterClient());
    environment.jersey().register(new PersonResource(personCache));
}Configure your factory in your config.yml file:
type: jedis
name: dev
metricsEnabled: true # default
pool:
  maxTotalConnections: 8 # default
  minIdleConnections: 0 # default
  maxIdleConnections: 8 # default
  jmxEnabled: true # default
  jmxNameBase: some-base-name
  jmxNamePrefix: some-prefix
  blockWhenExhausted: true # default
  timeBetweenEvictionRuns: 10s
  testWhileIdle: false # default
  testOnReturn: false # default
  testOnBorrow: false # default
  testOnCreate: false # default
  minEvictableIdleTime: 30s # default
  softMinEvictableIdleTime: 15s
  maxWait: 5s
  testsPerEvictionRun: 3 # default
  evictionPolicy: "org.apache.commons.pool2.impl.DefaultEvictionPolicy" # default
  evictorShutdownTimeout: 10s # default
  fairness: false # default
  lifo: true # default
connectionTimeout: 2s # default
socketTimeout: 2s # default
maxAttempts: 5 # default
password: hunter2
nodes:
- host: localhost
  port: 6371