键过期 (键的 TTL)
自 1.36.2 版本起,Deno KV 支持键过期,允许开发者控制 KV 数据库中键的生存时间 (TTL)。这允许将过期时间戳与键关联,在此时间之后,键将自动从数据库中删除
const kv = await Deno.openKv();
// `expireIn` is the number of milliseconds after which the key will expire.
function addSession(session: Session, expireIn: number) {
await kv.set(["sessions", session.id], session, { expireIn });
}
Deno CLI 和 Deno Deploy 都支持键过期。
多个键的原子过期 跳转到标题
如果在同一个原子操作中设置了多个键,并且这些键具有相同的 expireIn
值,则这些键的过期将是原子的。例如
const kv = await Deno.openKv();
function addUnverifiedUser(
user: User,
verificationToken: string,
expireIn: number,
) {
await kv.atomic()
.set(["users", user.id], user, { expireIn })
.set(["verificationTokens", verificationToken], user.id, { expireIn })
.commit();
}
注意事项 跳转到标题
过期时间戳指定了可以从数据库中删除键的最早时间。 允许实现在指定时间戳之后的任何时间过期键,但不能在此时间之前。 如果您需要严格执行过期时间(例如,出于安全目的),请也将其作为您值的一个字段添加,并在从数据库检索值后进行检查。