Redis

Модуль 5. Spring
17 уровень , 4 лекция
Открыта

Работа с NoSQL-технологиями

Spring Data предусматривает дополнительные проекты, которые помогут получить доступ к различным NoSQL-технологиям, включая:

  • MongoDB

  • Neo4J

  • Elasticsearch

  • Redis

  • GemFire или Geode

  • Cassandra

  • >Couchbase

  • LDAP

Spring Boot предусматривает автоконфигурацию для Redis, MongoDB, Neo4j, Solr, Elasticsearch, Cassandra, Couchbase, LDAP и InfluxDB. Кроме того, Spring Boot для Apache Geode предусматривает автоконфигурацию для Apache Geode. Можно использовать другие проекты, но конфигурировать их придется самостоятельно.

Redis

Redis – это кэш, брокер сообщений и полнофункциональное хранилище данных типа "ключ-значение". Вдобавок к этому Spring Boot содержит базовую автоконфигурацию для клиентских библиотек Lettuce и Jedis и абстракции, предоставляемые через Spring Data Redis.

Для удобного сбора зависимостей существует "стартер" spring-boot-starter-data-redis. По умолчанию он использует библиотеку Lettuce. Этот стартовый пакет работает как с традиционными, так и с реактивными приложениями.

Мы также предусмотрели "стартер" spring-boot-starter-data-redis-reactive для обеспечения согласованности с другими хранилищами, поддерживающими реактивное программирование.

Подключение к Redis

Можно внедрить автоконфигурируемые RedisConnectionFactory, StringRedisTemplate или ванильный экземпляр RedisTemplate, как и любой другой бин Spring. По умолчанию экземпляр будет пытаться подключиться к серверу Redis по адресу localhost:6379. В следующем листинге приведен пример такого бина:

Java
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"); } } 
Kotlin
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") } } 
Регистрировать можно произвольное количество бинов, реализующих LettuceClientConfigurationBuilderCustomizer для более углублённой настройки. ClientResources можно также настраивать с помощью ClientResourcesBuilderCustomizer. Если вы используете Jedis, также доступен JedisClientConfigurationBuilderCustomizer. Кроме того, вы можете зарегистрировать бин типа RedisStandaloneConfiguration, RedisSentinelConfiguration или RedisClusterConfiguration, чтобы получить полный контроль над конфигурацией.

Если вы добавите собственный @Bean любого из автоконфигурируемых типов, он заменит собой тип по умолчанию (кроме случая с RedisTemplate, если исключение основывается на имени бина, redisTemplate, а не на его типе).

По умолчанию фабрика соединений в пуле автоматически конфигурируется, если commons-pool2 находится в classpath.

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ