deno.com
本页内容

键过期 (键的生存时间 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 上均受支持。

多个键的原子性过期 Jump to heading

如果多个键在相同的原子操作中设置并具有相同的 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();
}

注意事项 Jump to heading

过期时间戳指定了键可以从数据库中删除的最早时间。实现允许在指定时间戳之后的任何时间使键过期,但不能在此之前。如果您需要严格强制执行过期时间(例如出于安全目的),请同时将其作为值的一个字段添加,并在从数据库中检索到值后进行检查。

您找到所需内容了吗?

隐私政策