Ana içeriğe geç

İşlemler

Deno KV API, anahtar alanında gerçekleştirilebilecek bir dizi işlemi sağlar.

Depodan veri okumak için iki işlem ve depoya veri yazmak için beş işlem vardır.

bilgi

Okuma işlemleri, güçlü veya nihai tutarlılık modunda gerçekleştirilebilir. Güçlü tutarlılık modu, okuma işleminin en son yazılmış değeri döndüreceğini garanti eder. Nihai tutarlılık modu, eski bir değeri döndürebilir, ancak daha hızlıdır.

Yazma işlemleri her zaman güçlü tutarlılık modunda gerçekleştirilir.

get

get işlemi, belirli bir anahtara ait değer ve versiyon damgasını döndürür. Bir değer mevcut değilse, get işlemi null değeri ve versiyon damgası döndürür.

const res = await kv.get<string>(["config"]);
console.log(res); // { key: ["config"], value: "value", versionstamp: "000002fa526aaccb0000" }

get işlemi gerçekleştirmek için kullanılabilecek iki API vardır. Deno.Kv.prototype.get(key, options?) API'si, tek bir anahtarı okumak için kullanılabilir ve Deno.Kv.prototype.getMany(keys, options?) API'si, bir kerede birden fazla anahtarı okumak için kullanılabilir.

Get işlemleri tüm tutarlılık modlarında bir "anlık görüntü okuması" olarak gerçekleştirilir. Bu, birden fazla anahtar bir kerede alındığında, döndürülen değerlerin birbirleriyle tutarlı olacağı anlamına gelir. — Deno KV API Belgeleri

list

list işlemi, belirli bir seçici ile eşleşen anahtarların bir listesini döndürür.

ipucu

Eşleşen anahtarları filtrelemek için kullanılabilecek 2 farklı seçici vardır:

  • prefix: Verilen ön ek anahtar parçalarıyla başlayan anahtarları eşleştirir.
  • range: Verilen start ve end anahtarları arasında leksikografik olarak tüm anahtarları eşleştirir.

Liste işlemi, döndürülen anahtarların sayısını sınırlamak için isteğe bağlı olarak bir limit alabilir. Liste işlemleri, Deno.Kv.prototype.list(selector, options?) yöntemi kullanılarak gerçekleştirilebilir.

// Tüm kullanıcıları döndür
const iter = kv.list<string>({ prefix: ["users"] });
const users = [];
for await (const res of iter) users.push(res);
console.log(users);

set

set işlemi, depodaki bir anahtarın değerini ayarlar.

tehlike

Anahtar mevcut değilse oluşturulur. Anahtar zaten varsa, değeri üzerine yazılır.

const res = await kv.set(["users", "alex"], "alex");
console.log(res.versionstamp); // "00a44a3c3e53b9750000"

delete

delete işlemi, bir anahtarı depodan siler.

await kv.delete(["users", "alex"]);

sum

sum işlemi, depodaki bir anahtara atomik olarak bir değer ekler.

await kv.atomic()
.mutate({
type: "sum",
key: ["accounts", "alex"],
value: new Deno.KvU64(100n),
})
.commit();

watch

watch işlemi, bir anahtar dizisi alır ve anahtarların herhangi biri versiyon damgasını değiştirdiğinde yeni bir değer yayan bir ReadableStream döndürür.

not

Dikkat edilmesi gereken bir nokta, döndürülen akışın izlenen anahtarların her bir ara durumunu döndürmemesidir; bunun yerine sizi anahtarların en son durumu ile güncel tutar.

const db = await Deno.openKv();

const stream = db.watch([["foo"], ["bar"]]);
for await (const entries of stream) {
console.log(entries);
}