Redis
Redis is a cache, message broker, and richly-featured key-value store. Spring Boot offers basic auto-configuration for the Lettuce and Jedis client libraries and the abstractions on top of them provided by Spring Data Redis.
There is a spring-boot-starter-data-redis “Starter” for collecting the dependencies in a convenient way.
By default, it uses Lettuce.
That starter handles both traditional and reactive applications.
| We also provide a spring-boot-starter-data-redis-reactive“Starter” for consistency with the other stores with reactive support. | 
Connecting to Redis
You can inject an auto-configured RedisConnectionFactory, StringRedisTemplate, or vanilla RedisTemplate instance as you would any other Spring Bean.
The following listing shows an example of such a bean:
- 
Java 
- 
Kotlin 
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
	private final StringRedisTemplate template;
	public MyBean(StringRedisTemplate template) {
		this.template = template;
	}
	// ...
	public Boolean someMethod() {
		return this.template.hasKey("spring");
	}
}import org.springframework.data.redis.core.StringRedisTemplate
import org.springframework.stereotype.Component
@Component
class MyBean(private val template: StringRedisTemplate) {
	// ...
	fun someMethod(): Boolean {
		return template.hasKey("spring")
	}
}By default, the instance tries to connect to a Redis server at localhost:6379.
You can specify custom connection details using spring.data.redis.* properties, as shown in the following example:
spring:
  data:
    redis:
      host: "localhost"
      port: 6379
      database: 0
      username: "user"
      password: "secret"| You can also register an arbitrary number of beans that implement LettuceClientConfigurationBuilderCustomizerfor more advanced customizations.ClientResourcescan also be customized usingClientResourcesBuilderCustomizer.
If you use Jedis,JedisClientConfigurationBuilderCustomizeris also available.
Alternatively, you can register a bean of typeRedisStandaloneConfiguration,RedisSentinelConfiguration, orRedisClusterConfigurationto take full control over the configuration. | 
If you add your own @Bean of any of the auto-configured types, it replaces the default (except in the case of RedisTemplate, when the exclusion is based on the bean name, redisTemplate, not its type).
By default, a pooled connection factory is auto-configured if commons-pool2 is on the classpath.