2016-04-08 36 views
0

Redis komutunu çalıştırmadan önce bir doğrulama yapılması gereken bir senaryo var. Komut sadece doğrulama doğrulanırsa çalıştırılmalıdır. Bunu yapmak için lua komut dosyası kullanmayı düşünüyorum. Argümanlarıyla birlikte çalışması gereken komut, lua betiğine argümanlar olarak belirtilmelidir.Redis lua komut dosyasıyla farklı değişkenlerle farklı komutlar nasıl çağırılır

Bu komut mantık formdadır: redis.call yöntemde gerekli argümanlar

if verify(KEYS[1], ARGV[1]) then 
    redis.call(ARGV[2], KEYS[2], <the rest of arguments for the command ARGV[2]) 
done 

sayısı çalıştırılır komutunda bağlıdır (ARGV [2]). Bu argümanlar, ARGV [3] 'den ARGV [n]' ye doğru komut dosyasında belirtilir, burada n> = 3. Bu argümanların çağrı yöntemine nasıl aktarılacağını anlamak isterim.

cevap

2

Bağımsız değişkenlerin kalanını başka bir tabloya kopyalamanız ve unpack kullanarak bu işleve iletmeniz gerekir. Bir kod parçacığı bin kelimeye bedeldir:

local i, t = {} 
for i=3, #ARGV do 
    t[#t+1] = ARGV[i] 
end 

if verify(KEYS[1], ARGV[1]) then 
    redis.call(ARGV[2], KEYS[2], unpack(t)) 
done 
İlgili konular