Работа с 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. В следующем листинге приведен пример такого бина:
@Component public class MyBean { private final StringRedisTemplate template; public MyBean(StringRedisTemplate template) { this.template = template; } }
@Component class MyBean(private val template: StringRedisTemplate) { }
LettuceClientConfigurationBuilderCustomizer для более углублённой настройки.
ClientResources можно также настраивать с помощью
ClientResourcesBuilderCustomizer. Если вы используете Jedis, также доступен
JedisClientConfigurationBuilderCustomizer. Кроме того, вы можете зарегистрировать бин типа
RedisStandaloneConfiguration,
RedisSentinelConfiguration или
RedisClusterConfiguration, чтобы получить полный контроль над конфигурацией.
Если вы добавите собственный @Bean любого из автоконфигурируемых типов, он заменит собой тип по умолчанию (кроме случая с RedisTemplate, если исключение основывается на имени бина, redisTemplate, а не на его типе).
По умолчанию фабрика соединений в пуле автоматически конфигурируется, если commons-pool2 находится в classpath.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ