Рубрики
Без рубрики

Конфигурация на основе свойств Spring Data Redis

Узнайте, как настроить Spring Boot для общения с Redis через Салат

Автор оригинала: baeldung.

1. Обзор

Одна из главных особенностей Spring Boot заключается в том, что она часто сводит стороннюю конфигурацию всего к нескольким свойствам.

В этом уроке мы увидим, как Spring Boot упрощает работу с Redis.

2. Почему Redis?

Redis -одно из самых популярных хранилищ структур данных в памяти. По этой причине его можно использовать в качестве базы данных, кэша и брокера сообщений.

С точки зрения производительности он хорошо известен благодаря своему быстрому времени отклика . В результате он может обслуживать сотни тысяч операций в секунду и легко масштабируется.

И он хорошо сочетается с приложениями Spring Boot . Например, мы можем использовать его в качестве кэша в нашей архитектуре микросервисов. Мы также можем использовать его в качестве базы данных NoSQL.

3. Запуск Redis

Для начала давайте создадим экземпляр Redis, используя их официальный образ Docker .

$ docker run -p 16379:6379 -d redis:6.0 redis-server --requirepass "mypass"

Выше мы только что запустили экземпляр Redis в порту 16379 с паролем mypass .

4. Стартер

Spring предоставляет нам отличную поддержку для подключения наших приложений Spring Boot к Redis с помощью Spring Data Redis .

Итак, далее, давайте убедимся, что у нас есть зависимость spring-boot-starter-data-redis в вашем pom.xml :


    org.springframework.boot
    spring-boot-starter-data-redis
    2.2.6.RELEASE    

5. Салат-латук

Далее, давайте настроим клиент.

Клиент Java Redis , который мы будем использовать, – это Салат , так как Spring Boot использует его по умолчанию. Однако мы могли бы также использовать Джедаев .

В любом случае результатом является экземпляр RedisTemplate :

@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) {
    RedisTemplate template = new RedisTemplate<>();
    template.setConnectionFactory(connectionFactory);
    // Add some specific configuration here. Key serializers, etc.
    return template;
}

6. Свойства

Когда мы используем салат, нам не нужно настраивать RedisConnectionFactory. Spring Boot делает это за нас.

Все, что нам остается, – это указать несколько свойств в нашем файле application.properties :

spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=16379
spring.redis.password=mypass
spring.redis.timeout=60000

Соответственно:

  • database задает индекс базы данных, используемый фабрикой соединений
  • хост – это место, где находится хост сервера
  • порт указывает порт, через который сервер прослушивает
  • пароль – это пароль для входа на сервер, и
  • тайм-аут устанавливает тайм-аут соединения

Конечно, есть много других свойств, которые мы можем настроить. Полный список свойств конфигурации доступен в документации по загрузке Spring.

7. Демонстрация

Наконец, давайте попробуем использовать его в нашем приложении. Если мы представим себе класс Book и репозиторий Book, мы можем создавать и извлекать Book s, используя нашу RedisTemplate для взаимодействия с Redis в качестве нашего бэкенда:

@Autowired
private RedisTemplate redisTemplate;

public void save(Book book) {
    redisTemplate.opsForValue().set(book.getId(), book);
}

public Book findById(Long id) {
    return redisTemplate.opsForValue().get(id);
}

По умолчанию салат будет управлять сериализацией и десериализацией для нас, так что на данный момент делать больше нечего. Тем не менее, полезно знать, что это также можно настроить.

Еще одна важная особенность заключается в том , что RedisTemplate потокобезопасен , поэтому он будет правильно работать в многопоточных средах .

8. Заключение

В этой статье мы настроили Spring Boot для общения с Redis через Салат. И мы достигли этого с помощью стартера, одной конфигурации @Bean и нескольких свойств.

Чтобы завершить, мы использовали RedisTemplate , чтобы Redis действовал как простой сервер.

Полный пример можно найти на GitHub .