编辑此页面

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 正在运行时自动配置和启动数据库。

环境变量:QUARKUS_REDIS_DEVSERVICES_ENABLED

显示更多

布尔值

true

用于基于容器的 DevServices 提供程序的容器镜像名称。 如果要使用 Redis Stack 模块(bloom、graph、search…​),请使用:redis/redis-stack:latest

环境变量:QUARKUS_REDIS_DEVSERVICES_IMAGE_NAME

显示更多

字符串

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_REDIS_DEVSERVICES_PORT

显示更多

整数

指示由 Quarkus 开发服务管理的 Redis 服务器是否共享。 共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。 如果找到匹配的容器,则会使用它,因此不会启动第二个容器。 否则,Redis 的开发服务会启动一个新容器。

发现使用 quarkus-dev-service-redis 标签。 该值使用 service-name 属性进行配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_REDIS_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到启动的容器的 quarkus-dev-service-redis 标签的值。 当 shared 设置为 true 时,使用此属性。 在这种情况下,在启动容器之前,Redis 的开发服务会查找 quarkus-dev-service-redis 标签设置为配置值的容器。 如果找到,它将使用此容器而不是启动一个新容器。 否则,它将启动一个新容器,并将 quarkus-dev-service-redis 标签设置为指定值。

当您需要多个共享 Redis 服务器时,将使用此属性。

环境变量:QUARKUS_REDIS_DEVSERVICES_SERVICE_NAME

显示更多

字符串

redis

传递给容器的环境变量。

环境变量:QUARKUS_REDIS_DEVSERVICES_CONTAINER_ENV__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

相关内容