首页/数据/Redis 进阶速查/TLS 加密的连接与吞吐成本
性能与排障129 条

TLS 加密的连接与吞吐成本

TLS 增加握手与加解密开销:短连接场景握手成本显著,长连接与连接复用下成本收敛;上线前压测对比并确认 CPU 余量。

Redis 进阶速查数据更新于 2026-10-13

TLS 的成本构成

TLS 给连接加上握手与逐字节加解密的开销:握手包含证书校验与会话协商,短连接场景下这部分占比很高;用长连接与连接复用把握手摊薄到整个生命周期后,成本主要落在加解密 CPU 上。Redis 6 起原生支持 TLS,服务端与客户端两侧都要配置证书。上线加密前应做加密前后的对照压测,并确认 CPU 留有足够余量。

基本信息

成本构成握手(证书校验、会话协商)与数据加解密 CPU
缓解手段连接复用、会话复用、CPU 的加密指令加速
服务端配置tls-port、tls-cert-file、tls-key-file、tls-ca-cert-file
客户端验证redis-cli --tls 配合 --cacert、--cert、--key
容量影响吞吐下降、CPU 上升,原容量规划需重算

典型使用场景

  • 合规要求:等保或行业规范要求链路加密时的标准做法
  • 跨不可信网络:业务与实例之间经过公网或共享网络
  • 短连接同步:未复用连接时握手成本突出,需要评估是否改造
  • 上线前压测:同条件对比加密前后的吞吐与延迟差
  • 证书运维:轮换、到期与吊销流程提前准备

加密连接写法

加密连接写法
redis-cli --tls --cacert ./ca.crt --cert ./client.crt --key ./client.key -h redis.internal -p 6380 PING  # 双向校验
redis-cli --tls --cacert ./ca.crt -h redis.internal -p 6380 PING   # 只校验服务端证书
redis-cli -h redis.internal -p 6379 PING                           # 明文端口对照,量化差异
redis-cli --tls --cacert ./ca.crt -h redis.internal -p 6380 INFO cpu  # 看加密开销落在哪个线程
redis-cli INFO clients | grep connected_clients                     # 连接数变化

场景成本对照

场景主要开销缓解方向
短连接加 TLS每次建连都完整跑一遍握手改用连接池复用长连接
长连接加 TLS主要是逐条命令的加解密会话复用,用批量命令减少往返
大批量传输加解密吞吐成为限制关注 CPU 余量与单连接带宽
混合部署明文与加密实例并存客户端按端口区分,配置集中管理
加密带来的吞吐下降与 CPU 上升要写进容量规划:明文时代算出的单实例承载量不能直接沿用,加密后往往需要上调实例数量或规格。
证书轮换流程缺失会在到期当天中断全部连接。把到期时间纳入监控,并在低峰预演一次轮换,确认服务端与客户端两侧都能平滑重启。

易错点

  • 加密开关上线未复测容量:压测数字沿用明文,上线后 CPU 打满、吞吐不达预期
  • 证书轮换没有流程:到期当日全量连接失败,且故障表现与网络问题相似,容易带偏排查方向
  • 客户端跳过证书校验:加密有了但身份认证没了,中间人风险依然存在
  • 短连接场景直接开 TLS:握手成本被放大,延迟上升却看不出消耗在哪一段

数据来源与参考

  • Redis 官方文档:TLS 支持
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌