本页面简要介绍了 Memorystore for Redis 的传输加密。
如需了解如何使用传输加密加密连接,请参阅启用传输加密。
Memorystore for Redis 仅支持 TLS 协议 1.2 版或更高版本。
简介
Memorystore for Redis 支持使用 传输层安全 (TLS) 协议加密所有 Redis 流量。启用传输加密后,Redis 客户端仅通过安全端口连接进行通信。未配置 TLS 的 Redis 客户端将被屏蔽。如果您选择启用传输加密,则要负责确保您的 Redis 客户端能够使用 TLS 协议。
传输加密前提条件
如需将传输加密与 Memorystore for Redis 搭配使用,您需要具备以下条件:
- 支持 TLS 或第三方 TLS 辅助信息文件 的 Redis 客户端
- 安装在访问您的 Redis 实例的客户端机器上安装的证书授权机构
开源 Redis 6.0 之前的版本不支持原生 TLS。因此,并非所有 Redis 客户端库都支持 TLS。如果您使用的客户端不支持 TLS,我们建议您使用 Stunnel 第三方插件,以便为您的客户端启用 TLS。如需了解如何使用安全通道连接到 Redis 实例,请参阅使用安全通道和 telnet 安全地连接到 Redis 实例 。
证书授权机构
使用传输加密的 Redis 实例具有一个或多个独一无二的证书授权机构 (CA),用于验证服务器的身份。CA 就是一个字符串,您必须在访问 Redis 实例的客户端上下载并安装该字符串。CA 的有效期为自创建之日起 10 年。为了确保服务连续性,必须在上一个 CA 过期之前,在 Redis 实例的客户端上安装新的 CA。
证书授权机构轮替
创建启用了传输加密的实例后,CA 的有效期为 10 年。此外,在您创建实例五年后,Memorystore for Redis 会生成新的 CA 并使其可用。
旧 CA 在到期日期之前仍然有效,因此您有五年的 时间来下载 并安装 新 CA 到连接到 Redis 实例的客户端。旧 CA 过期后,您可以从客户端中将其卸载。
服务器证书轮替
服务器端证书每 180 天轮替一次,轮替时会导致几秒钟的暂时性连接断开。要重新建立连接,您应该具备含有指数退避算法的重试逻辑。标准轮替不会造成标准层级实例发生故障切换。
传输加密的连接限制
在 Redis 实例上启用传输加密会限制实例可建立的客户端连接数上限。此限制取决于您的实例大小。如果您需要的连接数量超出您当前容量层级支持的连接数上限,则应考虑增加 Redis 实例的大小。
| 容量层级 | Redis 4.0、5.0 和 6.x1 版本的连接数上限 | Redis 7.0 及更高版本的连接数上限1 |
|---|---|---|
| M1 (1-4GB) | 1000 | 65000 |
| M2 (5-10GB) | 2500 | 65000 |
| M3 (11-35GB) | 15000 | 65000 |
| M4 (36-100GB) | 30000 | 65000 |
| M5 (101+GB) | 65000 | 65000 |
1 这些连接数上限是近似值,具体取决于每个连接发送的 Redis 命令的速率和 复杂性。
监控连接
由于使用传输加密的 Redis 实例具有特定的连接数限制,因此您应该监控 redis.googleapis.com/clients/connected 指标以确保不超出连接限制。如果已超出此限制,则 Redis 实例会拒绝后续的新连接尝试。在这种情况下,我们建议您对实例进行扩容以适应所需连接数。如果您怀疑空闲连接在您的连接中占很大一部分,则可以使用 timeout 配置参数主动终止这些连接。
启用传输加密对性能的影响
传输加密功能会执行数据加密和解密,这会造成处理开销。因此,启用传输加密可能会降低性能。此外,在使用传输加密时,每个额外的连接都会产生关联的资源费用。如需确定与使用传输加密相关的延迟时间,请同时使用启用了传输加密的 Redis 实例和停用了传输加密的的 Redis 实例对应用性能进行基准化分析,以比较应用性能。
有关提升性能的指导原则
- 尽可能减少客户端连接数量。建立并重用长时间运行的连接,而不是按需创建短时间运行的连接。
- 增加 Memorystore 实例的大小(建议使用 M4 或更大的大小)。
- 增加 Memorystore 客户端主机的 CPU 资源。CPU 个数越多,客户端机器的性能就越好。如果使用 Compute Engine 虚拟机,我们建议您使用计算优化型实例。
- 减小与应用流量关联的载荷大小,因为载荷越大,所需的往返次数就越多。
传输加密对内存用量的影响
启用传输加密会为此功能预留部分 Redis 实例内存。在所有其他条件相同的情况下,启用传输加密时,系统内存使用率指标值要更高,因为此功能会占用额外的内存开销。
Redis 7.0 版的性能改进
在 Memorystore for Redis 上使用 Redis 7.0 版可提升传输加密的性能。如需利用这些性能改进, 请考虑将实例升级 为使用 Redis 7.0 版。使用此版本后,Memorystore for Redis 不会断开您用于轮替服务器证书或执行更新操作的连接。