anchovycation / metronom

Easy to use Redis ORM based on node-redis with TypeScript support

Home Page:https://anchovycation.github.io/metronom/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`ModelInstance` içindeki bir alanda değişiklik yapıldığında tüm alanlar tekrardan kaydediliyor

saracalihan opened this issue · comments

ModelInstance objesi içindeki her key Redis üzerinde bir hash içinde key olarak tutuluyor.

Şu anki sisteme göre ModelInstance üzerindeki tek bir key değiştirilip ModelInstance.save() fonksiyonu çalıştırıldığında tüm keyler tek tek kaydediliyor ve bu yüzden sistemde yavaşlık olunuyor bunun yerine ModelInstance bir proxy ile takip edilerek ModelInstance içine _changedValues adında bir obje yerleştirilebilir ve bu objenin içine değişen keyler yazılırsa sadece o keyler Rediste güncellenebilir. Bu sayede toplamda n tane key'i olan bir nesnede m tane key değiştirildiğinde n-m kere gereksiz yazılma işlemi yapılmayacak.

@beyzaerkan ModelInstance'ı proxy haline getirerek bu özelliği ekleyebilir ModelInstance içine _changedValues key'ini ekleyip save fonksiyonunda da sadece o alanları kaydetme işini yapabilir misin?

İç içe objelerde alt seviyeden bir key değiştiğinde proxy tetiklenmediği için o ana key kaydedilmiyor. Alttaki alanlar da takip edilmeli.