Skrip Lua dimaksudkan untuk bekerja seperti MULTI
perintah. Sebenarnya sebagian besar perintah yang akan Anda kembangkan menggunakan MULTI
perintah dari klien Redis dapat diimplementasikan di Lua. Artinya, Anda dapat merangkum beberapa operasi kompleks dalam skrip dan lapisan data Anda akan melakukan operasi tulis atomik tanpa mengkhawatirkan strategi pemodelan data Anda di Redis.
Juga, saya menemukan mereka berguna ketika Anda ingin melakukan operasi membaca cepat tapi kompleks. Misalnya, Anda mungkin ingin mengurutkan objek. Objek disimpan dalam kunci hash sementara urutannya ditentukan oleh kunci set yang diurutkan . Anda mendapatkan rentang dari apa yang disebut set yang diurutkan dan Anda mendapatkan objek dalam hash menggunakan hmget
.
Poin terpenting adalah skrip Lua harus mengimplementasikan hal-hal yang dapat dieksekusi secepat mungkin, karena Redis akan memblokir operasi lain saat skrip Lua sedang berjalan. Artinya, Anda perlu melakukan interupsi cepat atau kinerja Redis Anda secara keseluruhan akan sangat menurun.
Argumen untuk tidak menggunakan Lua
Saya berpendapat bahwa Anda harus menggunakannya ketika Anda benar-benar membutuhkannya. Biasanya, klien dikembangkan menggunakan bahasa pemrograman tingkat tinggi seperti C#, Java, JavaScript, Ruby... dan mereka memberikan pengalaman pengembangan yang lebih baik:debugger yang baik, IDE, penyelesaian kode...
Ringkasan:Anda harus menggunakannya jika Anda dapat membuktikan bahwa ada manfaat aktual (dalam kinerja) jika Anda mengubah beberapa bagian dari logika domain Anda menjadi skrip Redis Lua.