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 文档许可。