İçeriğe geç
Geliştirme dokümantasyonu
Bu belgeler Keydra'nın geliştirilmekte olan hâlini anlatır; yayımlanmış bir sürüm değildir. Anlatılanlar bir sürüm çıkana kadar değişebilir.

Değerleri okuma ve düzenleme

Her veri türü için ayrı düzenleyici, büyük değerleri parça parça açan bir yükleme ve kayıtlı biçimi tanıyan bir çözücü zinciri.

Değerleri okuma ve değiştirme#

Sunucunun her veri türü için ayrı bir düzenleyici vardır ve her biri değeri bütün hâlde değil parça parça yükler: tarama yapılan türlerde HSCAN, SSCAN ve ZSCAN; listelerde LRANGE pencereleri; akışlarda XRANGE sayfaları. Büyük bir değer indirilmez, parça parça açılır.

Anahtar listesinin yanında açılmış bir hash; alanları ve değerleri yerinde düzenlenebiliyor
String

Tek bir düzenleyici ve bir Kodlama seçicisi.

Hash

Satır içi düzenlenebilen Alan ve Değer tablosu. Yeni alan için Yeni alan adı ve Yeni alan değeri kutuları, her satırda da bir silme işlemi bulunur.

Liste

Sıra ve Değer tablosu. Yeni öğeler Başa ya da Sona eklenir.

Set

Üye tablosu ve Yeni üye kutusu.

Sıralı set

İkisi de düzenlenebilen Üye ve Skor sütunları.

Stream

Sayfalanan bir görüntüleyici.

Bütün hâlde döndürülemeyecek kadar büyük değerler#

Bazı değerler bütün hâlde döndürülemez. Keydra bu değerlerin başını gösterir ve Kısmen gösteriliyor olarak işaretler; buradan düzenlemenin ya da kopyalamanın geri kalanı sileceğini açıklar. Kopyalama da aynı nedenle engellenir: kayıtlı olandan kısa bir metin üretirdi.

Değeri dışarı kopyalama#

Anahtar işlemleri menüsünde Anahtar adını kopyala, JSON olarak kopyala ve redis-cli komutu olarak kopyala seçenekleri bulunur. Sonuncusu, değeri doğrudan bir terminale ya da betiğe taşımanızı sağlar.

Keydra’nın çözebildiği kodlamalar#

Kodlama seçicisi varsayılan olarak Otomatik gelir; biçimi sunucu belirler. Kodlamayı elle seçmek, tahminin yanlış olduğu ya da bir değerin iki farklı biçimde okunabildiği durumlar içindir.

Ad Açıklama

Base64

Base64 ile kodlanmış içerik; çözülür ve zincirin geri kalanına verilir.

Brotli

Brotli ile sıkıştırılmış içerik. Brotli’yi tanıtan bir başlık olmadığı için en son ve koşullu olarak tahmin edilir.

Deflate

Gzip sarmalayıcısı olmadan ham deflate.

Gzip

Gzip ile sıkıştırılmış içerik. Kendini bir sihirli sayıyla tanıttığı için tahmin güvenlidir.

Hex

Baytlar onaltılık olarak; hiç metin olmayan değerler için.

JavaSerialized

Java serileştirmesi. Nesneye dönüştürülmez, yalnızca tarif edilir: geri dönüştürmek, değerin seçtiği kodu çalıştırmak demektir.

Json

JSON olarak tanınır ve biçimlendirilmiş gösterilir. Bir string’in en sık tuttuğu şey.

Lz4

LZ4 ile sıkıştırılmış içerik.

MsgPack

MessagePack; okunabilir bir yapıya çözülür.

PhpSerialized

PHP’nin serialize() çıktısı; okunabilir bir yapıya açılır.

Pickle

Python pickle. Java serileştirmesiyle aynı nedenle açılmaz, yalnızca tarif edilir.

Plain

Baytların kendisi, UTF-8 metin olarak çözülür. Değerlerin çoğu budur ve zincirde en son denenir.

Protobuf

Protocol Buffers; baytların gerçekten içerdiği alan numaraları ve tel tipleri olarak gösterilir — bir şema bulunmadığı için alan adları gösterilemez.

Zstd

Zstandard ile sıkıştırılmış içerik.

Not:Çözme bir görünümdür, değişiklik değil

Çözme işlemi değer okunurken sunucuda yapılır ve hedefte hiçbir şeyi değiştirmez. Kayıtlı veri olduğu gibi kalır.

Not:Brotli en son ve temkinli denenir

Brotli kendini tanıtan bir imza taşımaz. Bu yüzden tahmini sıkı koşullara bağlıdır: düz metinden hemen önce, en son denenir; kayıtlı değerin bayt dizisi görünümünde olması gerekir; çıkan sonucun da yazdırılabilir ve girdiden büyük olması gerekir. Koşullar sağlanmazsa değer olduğu gibi gösterilir.

Java serileştirmesi ve Python pickle verileri açılmaz, yalnızca tarif edilir. Bunları nesneye çevirmek, değerin kendi seçtiği kodu çalıştırmak demektir; bu bir özellik değil, uzaktan kod çalıştırma açığıdır.

Bu sayfayı düzenle