EVAL ve Redis Lua Ortamı
Lua betiklerini EVAL ile çalıştırın, KEYS/ARGV'yi ve betik önbelleğe almayı anlayın.
EVAL ve Redis Lua Ortamı, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.
Redis'te Lua Neden Kullanılır?
Redis, EVAL ile sunucu içinde Lua betikleri çalıştırmanıza olanak tanır. Betikler atomik olarak yürütülür; başka hiçbir Redis komutu eşzamanlı olarak çalışmaz. Böylece birden çok adımdan oluşan işlemler güvenle gerçekleştirilebilir.
EVAL Komutu
EVAL script numkeys key [key ...] arg [arg ...] — betik, anahtarlara KEYS tablosu ve bağımsız değişkenlere ARGV tablosu üzerinden erişir (1 tabanlı).
-- Redis CLI:
EVAL "return KEYS[1]" 1 mykey
-- Returns: mykeyKEYS ve ARGV'ye Erişme
Lua'da KEYS ve ARGV, EVAL tarafından doldurulan genel tablolardır.
EVAL "
local key = KEYS[1]
local val = ARGV[1]
redis.call('SET', key, val)
return redis.call('GET', key)
" 1 greeting helloredis.call ile redis.pcall Karşılaştırması
redis.call(cmd, ...) bir Redis komutunu yürütür ve başarısızlık durumunda Lua hatası oluşturur. redis.pcall ise hata oluşturmak yerine bir hata tablosu döndürür.
local ok, err = pcall(function()
redis.call("INVALID_CMD")
end)
if not ok then print("Error caught:", err) endDöndürülen Değerler
Lua türleri Redis yanıt türlerine dönüştürülür: sayılar → tam sayılara, dizeler → toplu dizelere, tablolar → çoklu toplu dizilere, false/nil → nil yanıtına, true → 1 tam sayısına.
Betik Önbelleğe Alma
Redis, derlenmiş betikleri SHA1 ile önbelleğe alır. İlk EVAL betiği derler ve önbelleğe alır. Aynı SHA ile yapılan sonraki çağrılar (EVALSHA aracılığıyla) derlemeyi atlar.
Redis Veri Türlerine Erişim
Tüm standart Redis komutlarına redis.call üzerinden erişilebilir: GET, SET, HGET, LPUSH, EXPIRE ve diğerleri.
local count = redis.call("INCR", KEYS[1])
redis.call("EXPIRE", KEYS[1], 3600)
return countAtomiklik Güvencesi
Bir Lua betiği çalışırken Redis diğer tüm istemcileri engeller. Betikler hızlı olmalıdır (mikrosaniyeler ile milisaniyeler arasında). Uzun süren betikler sunucunun tamamını engeller.
Redis'te Lua Sürümü
Redis, Lua 5.1'i (veya 5.1 ile uyumlu bir sürümü) içerir. Goto ve bit32 gibi bazı özellikler farklılık gösterebilir. JSON ve MessagePack için Redis'in sağladığı cjson ve cmsgpack kitaplıklarını kullanın.
Hata İşleme İçin En İyi Uygulamalar
Başarısız olabilecek işlemler için (örneğin tür hataları) redis.pcall kullanın. İstemcinin yorumlayabilmesi için yapılandırılmış hata tabloları döndürün.
Redis Betiklerinde Hata Ayıklama
Hata ayıklama iletilerini Redis günlüğüne yazmak için redis.log(redis.LOG_DEBUG, "message") kullanın. Betikleri SCRIPT LOAD işleminden önce EVAL ile redis-cli içinde sınayın.
Redis Lua Sorusu
Redis'te Lua betiklerini EVAL ile çalıştırmanın temel yararı nedir?
Özet: EVAL ve Redis Lua Ortamı
EVAL, Lua betiklerini Redis'te atomik olarak çalıştırır. Anahtarlara KEYS[n], bağımsız değişkenlere ARGV[n] üzerinden erişin. Komutlar için redis.call kullanın. Betikler SHA1 ile önbelleğe alınır. Sunucuyu engellememek için betikleri hızlı tutun.
Sıkça Sorulan Sorular
“EVAL ve Redis Lua Ortamı” dersi ücretsiz mi?
Evet — “EVAL ve Redis Lua Ortamı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.
“EVAL ve Redis Lua Ortamı” dersinde ne öğreneceğim?
Lua betiklerini EVAL ile çalıştırın, KEYS/ARGV'yi ve betik önbelleğe almayı anlayın. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Lua Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“EVAL ve Redis Lua Ortamı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- EVAL ve Redis Lua Ortamı
- Atomik İşlemler ve İşlemler
- Lua ile Hız Sınırlama
- SCRIPT LOAD ve EVALSHA