Redis 的 Dev Services
Quarkus 支持一项名为开发服务的功能,允许您创建各种数据源而无需任何配置。 实际上,这意味着如果您运行了 docker 并且没有配置 quarkus.redis.hosts
,Quarkus 将在运行测试或开发模式时自动启动 Redis 容器,并自动配置连接。
在运行应用程序的生产版本时,需要像往常一样配置 Redis 连接,因此如果您想在 application.properties
中包含生产数据库配置并继续使用开发服务,我们建议您使用 %prod.
配置文件来定义您的 Redis 设置。
Redis 的开发服务依赖 Docker 来启动服务器。如果您的环境不支持 Docker,您需要手动启动服务器,或连接到已运行的服务器。
如果您想使用 Redis Stack *模块* (bloom, graph, search…),请将 image-name 设置为 redis/redis-stack:latest |
共享服务器
大多数情况下,您需要在应用程序之间共享服务器。 Redis 的开发服务为在 *开发* 模式下运行的多个 Quarkus 应用程序实现了一个*服务发现*机制,以共享单个服务器。
Redis 的开发服务使用 quarkus-dev-service-redis 标签启动容器,该标签用于识别容器。 |
如果您需要多个(共享)服务器,您可以配置 quarkus.redis.devservices.service-name
属性并指示服务器名称。 它查找具有相同值的容器,如果找不到,则启动一个新容器。 默认服务名称为 redis
。
默认情况下,在开发模式下启用共享,但在测试模式下禁用。 您可以使用 quarkus.redis.devservices.shared=false
禁用共享。
配置参考
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
开发服务是否已被显式启用或禁用。通常默认启用开发服务,除非存在现有配置。 当启用开发服务时,Quarkus 将尝试在开发或测试模式下运行并且 Docker 正在运行时自动配置和启动数据库。 环境变量: 显示更多 |
布尔值 |
|
用于基于容器的 DevServices 提供程序的容器镜像名称。 如果要使用 Redis Stack 模块(bloom、graph、search…),请使用: 环境变量: 显示更多 |
字符串 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
指示由 Quarkus 开发服务管理的 Redis 服务器是否共享。 共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则会使用它,因此不会启动第二个容器。 否则,Redis 的开发服务会启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到启动的容器的 当您需要多个共享 Redis 服务器时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |