logo

缓存

简介

Vapor 允许您直接从 Vapor UI 或使用 Vapor CLI 轻松创建和管理可扩展的 Redis 集群。AWS 要求所有缓存集群都为私有,这意味着 Vapor 会将使用它们的任何应用程序放置在一个带有 NAT 网关 的网络中。

DynamoDB 缓存

如果您主要将缓存用于 Laravel 的任务调度程序和原子锁,您可能会发现使用 DynamoDB 缓存 是使用 Redis 集群的经济高效的替代方案。此外,DynamoDB 缓存不需要 Vapor 将 NAT 网关附加到您的应用程序网络。

如果环境中没有附加 Redis 缓存,则 DynamoDB 缓存将自动设置为默认缓存驱动程序。

创建缓存

您可以使用 Vapor UI 或使用 cache CLI 命令创建缓存。使用 CLI 命令时,该命令会提示您提供有关缓存的更多详细信息,例如其所需的性能类别。

bash
vapor cache my-application-cache

使用缓存

要将缓存附加到环境,请在 vapor.yml 文件中将 cache 键添加到环境的配置中。此键的值应为缓存的名称。当环境部署时,Vapor 会自动注入连接到缓存所需的 Laravel 环境变量,使您的应用程序能够立即开始使用它:

yaml
id: 3
name: vapor-app
environments:
    production:
        cache: my-application-cache
        build:
            - 'composer install --no-dev'
        deploy:
            - 'php artisan migrate --force'

本地连接缓存

如果您想从本地机器连接到缓存集群,可以使用 Vapor 跳板机 结合 cache:tunnel CLI 命令。跳板机是放置在您的私有网络中的非常小的、可通过 SSH 访问的服务器。

在缓存的网络中创建跳板机后,您可以执行 cache:tunnel 命令。此命令将使您的 Redis 缓存集群在 localhost:6378 上可用,允许您使用您选择的 Redis 管理工具(例如 Medis)访问它。

扩展缓存

您可以通过 Vapor UI 的缓存详细信息屏幕或 cache:scale CLI 命令来调整缓存的大小。调整缓存大小时,系统会提示您指定要调整到的“节点”数量。通过 CLI 调整缓存大小时,您应该在执行 cache:scale 命令时指定所需的节点数量。

可以将每个节点视为一个缓存服务器,其性能规格是在创建缓存时指定的。缓存键将自动在所有可用节点之间进行分片。调整缓存大小通常不会导致停机。

bash
vapor cache:scale my-application-cache 5

指标

可以通过 Vapor UI 的缓存详细信息屏幕或使用 cache:metrics CLI 命令来查看各种缓存性能指标。

bash
vapor cache:metrics my-application-cache
vapor cache:metrics my-application-cache 5m
vapor cache:metrics my-application-cache 30m
vapor cache:metrics my-application-cache 1h
vapor cache:metrics my-application-cache 8h
vapor cache:metrics my-application-cache 1d
vapor cache:metrics my-application-cache 3d
vapor cache:metrics my-application-cache 7d
vapor cache:metrics my-application-cache 1M

DynamoDB 缓存

创建项目时,Vapor 会确保在该项目的区域中创建一个自动缩放的 DynamoDB 缓存表。然后,在部署期间,Vapor 会自动填充与该缓存交互所需的環境變數,使用 Laravel 内置的 dynamodb 缓存驱动程序。您只需在 Laravel 应用程序中开始使用它即可!

如果环境中没有附加 Redis 缓存,则 DynamoDB 缓存将自动设置为默认缓存驱动程序。这些缓存虽然不如 Redis 集群性能高,但对于缓存需求较低的应用程序来说,提供了一种非常低成本的替代方案。

任务调度程序

Vapor 会自动配置 Laravel 的任务调度程序,以使用 DynamoDB 缓存驱动程序来避免任务重叠。

删除缓存

可以通过 Vapor UI 或使用 cache:delete CLI 命令来删除缓存。

bash
vapor cache:delete my-application-cache