N · 未找到 (Not Found)
结构refresh
当释放请求(R)发生时该 key 不存在, 或者 token 与当前持有的令牌不一致时,就会返回此响应。这不是一个错误 —— 它作为"不存在"这一取值被返回。
token 是把请求中携带的值原样回传的关联标识 —— 客户端用它来确定这是哪一个请求的 响应(响应匹配规则)。
字节表示法:
op是 ASCII 字符,token是二进制(u64,大端序),key是 UTF-8 文本(变长,在结构中以N表示)。末尾的\n为0A。固定头部是二进制值,可能 包含0x0A,因此必须在扫描换行符之前先按字节数消费。
流程
客户端
服务器
R · 释放 (key · token)
key 不存在或 token 不一致 —— 已过期/已释放,或从未存在过
N · 未找到
请求响应
释放操作接近幂等 —— 对一个已经因 lease 过期而被服务器回收的 key, 或者一个已经被释放过的 key 发送 R,都会得到 N。由于这是流程中的 正常分支,客户端不需要将其视为错误处理。