Lua komut dosyaları tüm Redis sunucusunu nasıl engeller? [çiftleme]

Dec 25 2020

Diyelim ki çalışan bir Redis örneğim var ve ona bağlı iki A ve B istemcim var. Java'daki Redis şablonunu kullanarak birinden bir salt okunur işlem LUA komut dosyası ve diğerinden salt okunur bir karma işlemi yürütürüm. Redis'teki tüm işlemler bloke olduğundan, LUA betiği ilk olarak yayınlanırsa, diğer istemcinin Lua betiği işlemi bitene kadar beklemesi gerektiğini varsayıyorum. Aynı şekilde, önce hash işlemi verilirse, Lua betiği işlemi hash işlemi bitene kadar beklemek zorundadır. Bu geçerli bir ifade mi? Redis, tek iş parçacıklıysa birden çok kaynaktan gelen çağrıları nasıl ele alır?

Yanıtlar

GuyKorland Dec 27 2020 at 02:29

Redis, daha fazla ayrıntı için her seferinde ana iş parçacığı üzerinde tek bir olay çalıştıran dahili bir Çift Döngüye sahiptir:

  1. https://redis.io/topics/internals-rediseventlib
  2. http://nosqlgeek.blogspot.com/2019/10/so-what-exactly-is-event-loop.html