Redis Alternatifleri
-
MhmdAlmz bunu yazdı
Reis benim sunucuda da sürekli kapanıyor. Cevapları bende merak ediyorum. Socket.io ile dağıtık redis kullanıyorum bende. Sessionlar rediste tutuluyor. Her gün olmasa da arada bir bir anda tüm session düşüyor loglara bakıyorum redis uçmuş. Ram mi şişiyor dedim kendi kendime bir ara rami 128 den 256 çıkardık problem hala devam etti. Bu iş transaction sayısı artınca oldu yanlız. Az session varken bir problem olmuyordu. Her kod get or add ile dolu :D
Bu arada okuma işleminde çok kaynak tüketiyor olması şaşırttı beni. Belki data büyüktür ama bende hiç böyle sorun olmadı. Redis de ortalama 1 GB lık veri var read kısmı çatır çatır çalışıyor. Sunucu da öyle aman aman sunucular değil.
Bene ayarlarla ilgili bir olay bu. Timeout Standart 5 saniye, sanırım 5 saniye yazmayınca exception atıyor.
Benim anladığım şu; çok fazla thread oluşuyor ve Redise yazılmayı bekliyor. Bunlar da ön bellekte birikiyor ve orayı şişirip patlatıyor.
Okuma işi şöyle; atıyorum bir döngüde bir algoritmik işlem yapıyor, bu işlem toplam atıyorum 100 ms sürüyor (döngünün tamamlanması). Şimdi her bir çevrimde 4 kere okuyor o zaman da 100 ms'de 800 kere okuyor. Ve hiç aramadan bu işi yapıyor. Bu
O sebeple yüksek CPU olmasını analarım. Tabi aynı anda o dbye yazıldığı için (Update) belki redis içinde bazı şeyler fazla kaynak kullanıyor.
-
unbalanced bunu yazdı
hazelcast'in Hazelcast Jet isminde bir servisi var belki ise yarayabilir
https://hazelcast.com/products/stream-processing/
ya da influxdata ya bakacagim. Benim olay biraz time series'e giriyor. Cünkü zaman bazli veriler aliyorum
Baska servisler de var ama bir cogu cloude bazli calisiyor (aws, azure vs). Ama ben sistemi kendi VPS'ime kurmayi planliyorum ve direk localde calissin. Biraz arastirma yaptim, kullandigim VPS firmasinin da azure gibi bir local network yaratma imkani var.
Yani benim atiyorum 3 tane VPSim olsun, birinde redis server kurulu olsun, diger 2 makineyle, redis server'a local ag üzerinden ulasabiliyorum (henüz test etmedim ama bir protokol ekleyip yapilabiliyormus anladigim kadariyla).
Suan icin tek sorunum, datayi düzgünce kaydedip paralel ya da paralele yakin sekilde datayi okumak.
Hocam hetzner üzerinde çok kolay sunucular arası sanal ağ kurabilirsin.
Bu arada couchbase nosql çözümüne bakmanı öneririm. Community versiyonu var ama production ortamında değilseniz enterprise da ücretsiz.
Key value servisi işine yarayabilir.
N1ql veri sorgulama dili neredeyse SQL ile aynı.
-
esinti bunu yazdı
Hocam hetzner üzerinde çok kolay sunucular arası sanal ağ kurabilirsin.
Bu arada couchbase nosql çözümüne bakmanı öneririm. Community versiyonu var ama production ortamında değilseniz enterprise da ücretsiz.
Key value servisi işine yarayabilir.
N1ql veri sorgulama dili neredeyse SQL ile aynı.
hetzner'i biliyorum hocam, ben suanlik memnunum kullandigim firmadan, yaklasik 2 kat da fiyat farki var. Bir iki makine olsa sorun olmaz ama biz baya bir makine almayi planliyoruz öyle olunca maliyetin de düsük olmasi lazim.
couchbase'i biliyorum hocam, bize standart bir db gerekmiyor. Aslinda bu redis'i de yanlis kullaniyorum, tam arastirip ögrenemedim ama redis'i memory db olarak kullanmam gerek bir db yerine. Cünkü program 7-24 aktif calisacak ve db'ye kaydetmesinin bir anlami yok, cünkü veriler sürekli güncelleniyor ve eski veriye ihtiyacim yok.
N1ql'i biliyorum daha önce bir kac proje yaptim ama sql ile de isim yok (ki bir cok nosql cözümün wrapper'i var), basit okuma yazma islemi yapmam lazim.
Ben redis'i memory'e yazma olayina bakayim en iyisi. Bu cözüm olabilir
-
Sanirim aradigim olayi buldum :) uygun bir zamanda bir deneme yapacagim
-
Peki benim bunu 'Reis Alternatifleri' diye okumama ne demeli 😅
-
ilatemha bunu yazdı
Peki benim bunu 'Reis Alternatifleri' diye okumama ne demeli 😅
Kafayı çok takmış olabilirsin :))
Maalesef bulduğum yol da işe yaramadı, bir kaç şekilde denedim olmadı.
Memcached deneyeyim dedim o da patladı maalesef. Pc başına geçince ekran görüntüsünü atarım. Yanlış görmediysem bir kayıdı 0.220 ms de okuyor ya da yazıyor. Memcached de pool full gibi bir hata verdi.
Aslında doğru dürüst konfigürasyon ile çözülür gibi duruyor.
Diğer alternatife de bakacağım hazelcast
O da olmazsa uygulamayı sub-pub a çevirip subscribe olanlara veri gönderecek.
-
unbalanced bunu yazdıesinti bunu yazdı
Hocam hetzner üzerinde çok kolay sunucular arası sanal ağ kurabilirsin.
Bu arada couchbase nosql çözümüne bakmanı öneririm. Community versiyonu var ama production ortamında değilseniz enterprise da ücretsiz.
Key value servisi işine yarayabilir.
N1ql veri sorgulama dili neredeyse SQL ile aynı.
hetzner'i biliyorum hocam, ben suanlik memnunum kullandigim firmadan, yaklasik 2 kat da fiyat farki var. Bir iki makine olsa sorun olmaz ama biz baya bir makine almayi planliyoruz öyle olunca maliyetin de düsük olmasi lazim.
couchbase'i biliyorum hocam, bize standart bir db gerekmiyor. Aslinda bu redis'i de yanlis kullaniyorum, tam arastirip ögrenemedim ama redis'i memory db olarak kullanmam gerek bir db yerine. Cünkü program 7-24 aktif calisacak ve db'ye kaydetmesinin bir anlami yok, cünkü veriler sürekli güncelleniyor ve eski veriye ihtiyacim yok.
N1ql'i biliyorum daha önce bir kac proje yaptim ama sql ile de isim yok (ki bir cok nosql cözümün wrapper'i var), basit okuma yazma islemi yapmam lazim.
Ben redis'i memory'e yazma olayina bakayim en iyisi. Bu cözüm olabilir
Benim bildiğim de böyle oluyor hacı.
Çok kullanılmayan dataları normal db ne kaydedebilirsin ama sürekli aktif olanlar için redisin memoryden kullanmak gerekiyor diye biliyorum.
Bizim projede böyle kullanılıyordu.
-
u235 bunu yazdıunbalanced bunu yazdıesinti bunu yazdı
Hocam hetzner üzerinde çok kolay sunucular arası sanal ağ kurabilirsin.
Bu arada couchbase nosql çözümüne bakmanı öneririm. Community versiyonu var ama production ortamında değilseniz enterprise da ücretsiz.
Key value servisi işine yarayabilir.
N1ql veri sorgulama dili neredeyse SQL ile aynı.
hetzner'i biliyorum hocam, ben suanlik memnunum kullandigim firmadan, yaklasik 2 kat da fiyat farki var. Bir iki makine olsa sorun olmaz ama biz baya bir makine almayi planliyoruz öyle olunca maliyetin de düsük olmasi lazim.
couchbase'i biliyorum hocam, bize standart bir db gerekmiyor. Aslinda bu redis'i de yanlis kullaniyorum, tam arastirip ögrenemedim ama redis'i memory db olarak kullanmam gerek bir db yerine. Cünkü program 7-24 aktif calisacak ve db'ye kaydetmesinin bir anlami yok, cünkü veriler sürekli güncelleniyor ve eski veriye ihtiyacim yok.
N1ql'i biliyorum daha önce bir kac proje yaptim ama sql ile de isim yok (ki bir cok nosql cözümün wrapper'i var), basit okuma yazma islemi yapmam lazim.
Ben redis'i memory'e yazma olayina bakayim en iyisi. Bu cözüm olabilir
Benim bildiğim de böyle oluyor hacı.
Çok kullanılmayan dataları normal db ne kaydedebilirsin ama sürekli aktif olanlar için redisin memoryden kullanmak gerekiyor diye biliyorum.
Bizim projede böyle kullanılıyordu.
örneklere baktim hocam benim yaptigim gibi yapilmis hepsi. Memory'den kullan gibi bir secenek yok ya da ben göremedim. Memory'den calissa da db'ye kaydediyor. Nasil anliyorsun diyorsan, redis-cli' den get MY_KEY ile degerleri görebiliyorum uygulama calismadigi halde. Tabi restart yapip denemedim ama muhtemelen local bir yere yaziyor. restart atip bakayim en iyisi veriler duracak mi
-
https://raw.githubusercontent.com/redis/redis/7.0/redis.conf
SNAPSHOTTING başlığında ilgili
ayar var hocam. İstemezsen diske yazmaz -
Hannibal_King bunu yazdı
https://raw.githubusercontent.com/redis/redis/7.0/redis.conf
SNAPSHOTTING başlığında ilgili
ayar var hocam. İstemezsen diske yazmazcok sagol hocam kullandigim kütüphanede snapshot ile ilgili bir ayar bulamadim,
direk server'da su kodu cagirdim
redis-server --save "" --appendonly no
suan icin sorun cözüldü gibi duruyor. Insallah sikintisiz devam eder bakalim. Ben bu redise aslinda daha cok yüklenmeyi düsünüyordum yani 10 tane bu sekilde kaynak baglamayi düsünüyordum ama 1 tanesi bile zor kaldiriyorsa isimiz var demek :)