Daha uygulamanızın başındasınız derken, daha başlamamışsınız ihtiyacınıza uygunsa redis öneriyorlar kodlarınızı değiştirmek zorunda kalmayacaksınız noktasını vurgulamak istemiştim, sonradan ihtiyacım aslında buymuş diyip kodları değiştirmek de vardı.
Sorunuza gelecek olursak, eğer milyonlarca kayıttan söz ediyorsak onu genelde bir çok uygulama şu şekilde çözüyor, ihtiyaç kadarı cache'leniyor. Mesela tablomuzda 2 milyon kayıt var ancak kaç tanesine dönüp bakacağız, işlemler tablosu dediniz mesela, bu işlemleri kullanıcı işlemleri varsayalım, işte şu kaydı açtı, şu içeriği güncelledi gibi, bunları açıp bakan kişi 2 milyon kayıt varsa bunu en alta kadar bir anda inip bakamaz zaten, çok kayıtlı tabloları 20,30, 50, 100,200'er olarak listele opsiyonu koyuluyor bir çok yerde, biz de istersek uygulamamıza bir servis bağlarız, islemler tablosunun son 100 kaydını cachele yaparız, ya da kullanıcı isteği olduğunda yaparız bunu. Örnek olarak, 20'şer olarak listeliyoruz diyelim kaydı, kullanıcı işlemler sayfasına girdiğinde ilk 60 kaydı listeler ve cache'leriz, 20li olarak listelediğimizden ilk 3 sayfamız cache'lenmiş olur, kullanıcı 2. sayfaya tıkladığında cache'den gelecek kayıtlar, 3. sayfada da sonraki 60 kaydı çağırırız mesela, 3. sayfaya ilk cache'lediğimiz 60 kaydın son 20 kayıt cache'den gelir yine hızlı bir şekilde, o kayıtlar incelenirken sonraki 60 kayıt hazır olmuş olur.
Genelde cache kısmı uygulama yazıldıktan sonraya bırakıyorum ben, çünkü daha belli oluyor, uygulamayı kullanırken hızı neler arttırıyor onu görüyorum, verdiğim örnekdeki gibi mesela uygulama kullanılırlığını neler arttıracak onlara odaklanıp, hangi bölüm sunucumun belleğini, işlemcisini, veritabanını ne kadar yoruyor, nerelerde cache'leme yaparsam daha hızlı çalışır, hangi tabloları direk veritabanından index'leme yaparsam verimli olur vs gibi.
Peki son olarak hocam redis ile kullanılan cache sistemi dışında codeigniter dökümanında
https://www.codeigniter.com/userguid...e/caching.html bir
database cache olayı var. Kullanımı ise
// Turn caching on
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM mytable");
// Turn caching off for this one query
$this->db->cache_off();
$query = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'");
// Turn caching back on
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM another_table");Şeklinde. SQL Sorgusu önce Cache'i aktif edip daha sonra yeni bir sorguda kapatıyor. Ben tam olarak bu mantığı anlayamadım ney işe yaradığına dair çünkü kısa bir kullanımı var.
Bilginiz var mı acaba?