Я не уверен, как настроить TestContainers с Valkey в моем весеннем проекте.
As Redis больше не является открытым исходным кодом, я решил реализовать кэширование с Valkey 8.0.0.
Но у меня возникают проблемы Настройка Testcointers, и теперь мне интересно, что я делаю неправильно, и если бы мне в любом случае использовал более старую версию Redis с открытым исходным кодом или переключиться на какой -то другой магазин значений с открытым исходным кодом, который имеет лучшую документацию. Я не уверен, насколько популярен Valkey даже на данный момент. Контейнер Valkey по сравнению с Redis One. < /p>
Вот мой код < /p>
@ActiveProfiles("integration-test")
@Testcontainers
@SpringBootTest
@AutoConfigureMockMvc
@Slf4j
public abstract class BaseIntegrationTest {
@Autowired
protected MockMvc mockMvc;
@Autowired
protected IntegrationTestDataConfig integrationTestDataConfig;
@Container
@ServiceConnection
static final PostgreSQLContainer POSTGRES_CONTAINER = new PostgreSQLContainer("postgres:latest")
.withDatabaseName("testdb")
.withUsername("test")
.withPassword("test");
@Container
static final GenericContainer valkeyContainer = new GenericContainer("valkey/valkey:8.0.0")
.withExposedPorts(6379)
.withCommand("valkey-server", "/etc/valkey/valkey.conf")
.withClasspathResourceMapping("config/valkey.conf", "/etc/valkey/valkey.conf", BindMode.READ_ONLY)
.waitingFor(Wait.forLogMessage(".*Ready to accept connections.*\\n", 1));
@DynamicPropertySource
static void registerValkeyProperties(DynamicPropertyRegistry registry) {
registry.add("spring.data.redis.host", valkeyContainer::getHost);
registry.add("spring.data.redis.port", () -> valkeyContainer.getMappedPort(6379));
}
}
< /code>
Как вы можете использовать, я использую GenericContainer, я не уверен, использую ли я правильный comand, копируя файл конфигурации или этот Unnesecary Alltogether < /p>
это файл conf < /p>
bind 0.0.0.0 -::1
protected-mode no
< /code>
И это свойства .yml, которые должны быть перезаписаны для тестовой среды: < /p>
spring:
data:
redis:
host: ${VALKEY_HOST:}
port: ${VALKEY_PORT:}
password: ${VALKEY_PASSWORD:}
< /code>
В настоящее время тестовый контейнер начинается нормально, но моя фабрика подключения салата, похоже, не может разрешить адрес и порт < /p>
2025-02-25T11:35:11.159+01:00 INFO 15996 --- [xecutorLoop-1-2] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was localhost/127.0.0.1:52306
2025-02-25T11:35:11.168+01:00 WARN 15996 --- [ioEventLoop-6-2] i.l.core.protocol.ConnectionWatchdog : Cannot reconnect to [localhost/:52306]: Connection closed prematurely
< /code>
Я подтвердил через журналы, что случайно отображенный порт (например, 52306) такой же, как valkeycontainer.getmapedport (6379), но соединение не работает почти сразу. Я не уверен, использую ли я правильную команду (valkey-server /etc/valkey/valkey.conf), если содержание valkey.conf верно, или если есть дополнительная переменная среды, требуемая Valkey.
[list]
[*] Я правильно использую GenericContainer, или есть конкретные контейнеры Redis или Valkey, которые я должен использовать вместо этого? < /p>
< /li>
Является ли мой файл congig? < /p>
< /li>
Я использую правильные свойства В моем файле .yml? вдоль Форма)?
[*] Я попытался использовать rediscontainers, но TestContainer даже не начал бы
[*] Используется различные конфигурации Bind, например, Bind 127.0.0.1 -:: 1
Я не уверен, как настроить TestContainers с Valkey в моем весеннем проекте. As Redis больше не является открытым исходным кодом, я решил реализовать кэширование с Valkey 8.0.0. Но у меня возникают проблемы Настройка Testcointers, и теперь мне интересно, что я делаю неправильно, и если бы мне в любом случае использовал более старую версию Redis с открытым исходным кодом или переключиться на какой -то другой магазин значений с открытым исходным кодом, который имеет лучшую документацию. Я не уверен, насколько популярен Valkey даже на данный момент. Контейнер Valkey по сравнению с Redis One. < /p> Вот мой код < /p> [code]@ActiveProfiles("integration-test") @Testcontainers @SpringBootTest @AutoConfigureMockMvc @Slf4j public abstract class BaseIntegrationTest {
} < /code> Как вы можете использовать, я использую GenericContainer, я не уверен, использую ли я правильный comand, копируя файл конфигурации или этот Unnesecary Alltogether < /p> это файл conf < /p> bind 0.0.0.0 -::1 protected-mode no < /code> И это свойства .yml, которые должны быть перезаписаны для тестовой среды: < /p> spring: data: redis: host: ${VALKEY_HOST:} port: ${VALKEY_PORT:} password: ${VALKEY_PASSWORD:}
< /code> В настоящее время тестовый контейнер начинается нормально, но моя фабрика подключения салата, похоже, не может разрешить адрес и порт < /p> 2025-02-25T11:35:11.159+01:00 INFO 15996 --- [xecutorLoop-1-2] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was localhost/127.0.0.1:52306 2025-02-25T11:35:11.168+01:00 WARN 15996 --- [ioEventLoop-6-2] i.l.core.protocol.ConnectionWatchdog : Cannot reconnect to [localhost/:52306]: Connection closed prematurely < /code> Я подтвердил через журналы, что случайно отображенный порт (например, 52306) такой же, как valkeycontainer.getmapedport (6379), но соединение не работает почти сразу. Я не уверен, использую ли я правильную команду (valkey-server /etc/valkey/valkey.conf), если содержание valkey.conf верно, или если есть дополнительная переменная среды, требуемая Valkey. [list] [*] Я правильно использую GenericContainer, или есть конкретные контейнеры Redis или Valkey, которые я должен использовать вместо этого? < /p> < /li> Является ли мой файл congig? < /p> < /li> Я использую правильные свойства В моем файле .yml? вдоль Форма)?
[*] Я попытался использовать rediscontainers, но TestContainer даже не начал бы
[*] Используется различные конфигурации Bind, например, Bind 127.0.0.1 -:: 1 [/code]
Я не уверен, как настроить TestContainers с Valkey в моем весеннем проекте.
As Redis больше не является открытым исходным кодом, я решил реализовать кэширование с Valkey 8.0.0.
Но у меня возникают проблемы Настройка Testcointers, и теперь мне...
Создал AWS Elasticache (ValKey) и пытаюсь получить к нему доступ из приложения Springboot Java (17). Прочитал о клиенте Lettuce (
Не удалось найти соответствующие примеры.
Кто-нибудь может указать на полезные уроки или примеры. Спасибо!
Создал AWS Elasticache (ValKey) и пытаюсь получить к нему доступ из приложения Springboot Java (17). Ниже приведены несколько клиентов, с которыми я столкнулся, но не уверен, какой из них лучший?