# java-redis-client
**Repository Path**: mirrors_opentracing-contrib/java-redis-client
## Basic Information
- **Project Name**: java-redis-client
- **Description**: OpenTracing Instrumentation for Redis Client
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-18
- **Last Updated**: 2026-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![Released Version][maven-img]][maven] [](https://opensource.org/licenses/Apache-2.0)
# OpenTracing Redis Client Instrumentation
OpenTracing instrumentation for Redis Client
## Requirements
- Java 8
## Installation
### Jedis
#### Jedis 2
pom.xml
```xml
io.opentracing.contrib
opentracing-redis-jedis
VERSION
```
#### Jedis 3
pom.xml
```xml
io.opentracing.contrib
opentracing-redis-jedis3
VERSION
```
### Lettuce
pom.xml
```xml
io.opentracing.contrib
opentracing-redis-lettuce-5.2
VERSION
```
### Redisson
pom.xml
```xml
io.opentracing.contrib
opentracing-redis-redisson
VERSION
```
### Spring Data Redis 1.x
pom.xml
```xml
io.opentracing.contrib
opentracing-redis-spring-data
VERSION
```
### Spring Data Redis 2.x
pom.xml
```xml
io.opentracing.contrib
opentracing-redis-spring-data2
VERSION
```
## Usage
```java
// Instantiate tracer
Tracer tracer = ...
// Create TracingConfiguration
TracingConfiguration tracingConfiguration = new TracingConfiguration.Builder(tracer).build();
```
### Jedis
```java
// Create Tracing Jedis
Jedis jedis = new TracingJedis(tracingConfiguration);
jedis.set("foo", "bar");
String value = jedis.get("foo");
```
### Jedis Cluster
```java
Set jedisClusterNodes = new HashSet();
jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7379));
// Create Tracing Jedis Cluster
JedisCluster jc = new TracingJedisCluster(jedisClusterNodes, tracingConfiguration);
jc.set("foo", "bar");
String value = jc.get("foo");
```
### Jedis Pool
```java
// Configure the pool
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(10);
poolConfig.setTestOnBorrow(false);
// Create Tracing Jedis Pool
JedisPool pool = new TracingJedisPool(poolConfig, "127.0.0.1", 6379, tracingConfiguration);
try (Jedis jedis = pool.getResource()) {
// jedis will be automatically closed and returned to the pool at the end of "try" block
jedis.set("foo", "bar");
String value = jedis.get("foo");
}
```
### Jedis Sentinel Pool
```java
// Create Tracing Jedis Sentinel Pool
JedisSentinelPool pool = new TracingJedisSentinelPool(tracingConfiguration, MASTER_NAME, sentinels, poolConfig);
try (Jedis jedis = pool.getResource()) {
// jedis will be automatically closed and returned to the pool at the end of "try" block
jedis.set("foo", "bar"));
String value = jedis.get("foo"));
}
```
### Jedis Span Name
By default, span names are set to the operation performed by the Jedis object.
To customize the span name, provide a Function to the TracingConfiguration object that alters the span name.
If a function is not provided, the span name will remain the default.
Refer to the RedisSpanNameProvider class for a function that prefixes the operation name.
```java
TracingConfiguration tracingConfiguration = new TracingConfiguration.Builder(tracer)
.withSpanNameProvider(RedisSpanNameProvider.PREFIX_OPERATION_NAME("redis."))
.build();
//Create Tracing Jedis with custom span name
Jedis jedis = new TracingJedis(tracingConfiguration);
jedis.set("foo", "bar");
//Span name is now set to "redis.set"
```
### Lettuce
```java
// Create client
RedisClient client = RedisClient.create("redis://localhost");
// Decorate StatefulRedisConnection with TracingStatefulRedisConnection
StatefulRedisConnection connection =
new TracingStatefulRedisConnection(client.connect(), tracingConfiguration);
// Get sync redis commands
RedisCommands commands = connection.sync();
// Get async redis commands
RedisAsyncCommands commandsAsync = connection.async();
```
### Redisson
```java
// Create Redisson config object
Config = ...
// Create Redisson instance
RedissonClient redissonClient = Redisson.create(config);
// Decorate RedissonClient with TracingRedissonClient
RedissonClient tracingRedissonClient = new TracingRedissonClient(redissonClient, tracingConfiguration);
// Get object you need using TracingRedissonClient
RMap map = tracingRedissonClient.getMap("myMap");
```
### Spring
```java
// Create tracing connection factory bean
@Bean
public RedisConnectionFactory redisConnectionFactory() {
LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory();
lettuceConnectionFactory.afterPropertiesSet();
return new TracingRedisConnectionFactory(lettuceConnectionFactory,
new TracingConfiguration.Builder(tracer()).build());
}
```
Note: if you use Lettuce/Jedis you could achieve the same result using the Lettuce/Jedis support when
configuring LettuceConnectionFactory/JedisConnectionFactory instead of using a wrapping TracingRedisConnectionFactory.
## License
[Apache 2.0 License](./LICENSE).
[ci-img]: https://travis-ci.org/opentracing-contrib/java-redis-client.svg?branch=master
[ci]: https://travis-ci.org/opentracing-contrib/java-redis-client
[cov-img]: https://coveralls.io/repos/github/opentracing-contrib/java-redis-client/badge.svg?branch=master
[cov]: https://coveralls.io/github/opentracing-contrib/java-redis-client?branch=master
[maven-img]: https://img.shields.io/maven-central/v/io.opentracing.contrib/opentracing-redis-parent.svg
[maven]: http://search.maven.org/#search%7Cga%7C1%7Copentracing-redis-parent