CLIENT TRACKING
控制服务器辅助的客户端连接缓存。
语法
CLIENT TRACKING [REDIRECT client-id] [PREFIX prefix [PREFIX prefix ...]] [BCAST] [OPTIN] [OPTOUT] [NOLOOP]
引入版本:6.0.0
复杂度摘要:O(1)
该命令启用Redis服务器的跟踪功能,该功能用于服务器辅助客户端缓存。
启用跟踪后,Redis 会记住连接请求的键,以便在修改此类键时发送稍后失效消息。失效消息在同一连接中发送(仅在使用 RESP3 协议时可用)或在不同连接中重定向(适用于 RESP2 和 Pub/Sub)。您可以使用广播模式接收与您订阅的键前缀匹配的所有键的通知,无论您请求哪个键。详细信息请参见客户端缓存文档。本页仅描述该子命令的选项。
为了启用跟踪,请使用:
CLIENT TRACKING ON ... options ...
该功能将在当前连接的整个生命周期中保持活动状态,除非在某个时刻使用 CLIENT TRACKING OFF 关闭跟踪。
必需参数
ON | OFF
打开或关闭连接的键失效跟踪。
可选参数
REDIRECT client-id
向指定ID的连接发送失效消息。连接必须存在。您可以使用 CLIENT ID 获取连接的 ID。如果重定向的连接在 RESP3 模式下终止,则启用跟踪的连接会收到 Tracking-redir-broken 推送消息以表示断开连接。
PREFIX prefix [PREFIX prefix ...]
仅跟踪以指定前缀之一开头的键。与 BCAST 参数一起使用。您可以多次指定此选项以跟踪多个前缀。如果您在没有此选项的情况下启用广播,Redis 将为每个键发送失效消息。您无法删除单个前缀;要删除所有前缀,请禁用并重新启用跟踪。此选项增加了 O(N^2) 时间复杂度,其中 N 是跟踪的前缀总数。
BCAST
启用广播模式。在此模式下,Redis 为所有键或与指定 PREFIX 匹配的键发送无效消息,而不仅仅是连接读取的键。如果没有广播模式,Redis 会跟踪通过只读命令获取的键,并仅针对这些键发送失效消息。
OPTIN
仅跟踪紧随 CLIENT CACHING YES 后的读取命令的键。
OPTOUT
跟踪除紧跟在 CLIENT CACHING NO 后面的命令之外的所有读取键。
NOLOOP
不要发送此连接修改的键的无效消息。在默认跟踪模式下,修改跟踪的键会将其从失效表中删除,即使 NOLOOP 抑制消息也是如此。要跟踪键以防止将来失效,请再次读取键。
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
简单字符串回复:如果连接成功置于跟踪模式或成功禁用跟踪模式,则为 OK。否则,将返回错误。
RESP3
简单字符串回复:如果连接成功置于跟踪模式或成功禁用跟踪模式,则为 OK。否则,将返回错误。
资料来源:Redis 官方 CLIENT TRACKING 文档;中文内容参考 Redis 文档许可。