Spring Data Redis에서는 두 가지의 Redis Connector를 지원한다.

Netty 기반 오픈 소스 커넥터

```kotlin
@Configuration
class RedisConfig {

	@Bean
	fun redisConnectionFactory(): LetuceConnectionFactory =
		LettuceConnectionFactory(RedisStandaloneConfiguration("server", 6379))
}
```

non-blocking과 non-transactional 에 대해선 Thread-Safe하게 제공 됩니다.(default 설정)

매 번 새로운 연결을 사용하려면 `shareNativeConnection` 을 false로 설정하면 됩니다.

Community-driven 기반 커넥터

```kotlin
@Configuration
class RedisConfig {

	@Bean
	fun redisConnectionFactory(): JedisConnectionFactory =
		JedisConnectionFactory(RedisStandaloneConfiguration("server", 6379))
}
```

마스터 쓰기, 복제본 읽기

@Configuration
class RedisConfig {

	@Bean
	fun redisConnectionFactory(): LettuceConnectionFactory() {
		val clientConfig = LettuceClientConfiguration.builder()
			.readFrom(REPLICA_PREFERRED)
			.build()
		
		val serverConfig = REdisStandaloneConfiguration("server", 6379)

		return LettuceConnectionFactory(serverConfig, clientConfig)
	}
}

Sentinel

// Jedis
@Bean
fun jedisConnectionFactory(): RedisConnectionFactory {
	val config = RedisSentinelConfiguration()
		.master("mymaster")
		.sentinel("127.0.0.1", 26379)
		.sentinel("127.0.0.1", 36379)
	return JedisConnectionFactory(config)
}

// Lettuce
@Bean
fun lettuceConnectionFactory(): RedisConnectionFactory {
	val config = RedisSentinelConfiguration()
		.master("mymaster")
		.sentinel("127.0.0.1", 26379)
		.sentinel("127.0.0.1", 36379)
	return LettuceConnectionFactory(config)
}

RedisTemplate

위와 같이 redis에서는 다양한 방법으로 데이터를 저장할 수있도록 제공한다.