Робота з 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.