SelamünAleyküm, Yeni bir yazı serisine başlamaya karar verdim. Bu yazıda Caching deyince neredeyse akla ilk gelen teknolojilerden olan Redis olacaktır. Aslına bakılacak olursa .Net Core serisinde Cache'i anlatmayı düşünüyordum lakin öncesinde cache'i daha iyi anlamak için yeni bir seriye başlamak gerektiğini düşündüm ve bu şekilde cache konusunu daha rahat ve kapsamlı bir şekilde ele alabileceğiz. Tabi ilk başlarda teorik bir şekilde incelemeler yapacağız, inşallah ileriki yazılarda bunları pratiğe de aktaracağız.
Terim olarak, Önbelleğe Alma, işlemine Cache denir. Yaptığımız işlemlerin bizim belirlediğimiz süre boyunca bellekte kalması işlemidir. Böylelikle belleğe atadığımız verileri bellekten hızlıca getirebiliriz. Projemiz ise tekrardan veritabanına vs. uğramaz. Direk bellekten veriyi alır ve size sunar. Bu sayede Projelerimizde performans artışı sağlayabiliriz.
Gündelik hayatta yaşadıklarımızdan misal verecek olursak, yarın herhangi bir konudan sınvımız olacak ve bu sınava hazırlanıyoruz. Sınavda çıkacak konulara gerek kitap gerek internet üzerinden öğrenip hafızamıza atıyoruz diyelim. Bu şekilde daha sonradan tekrardan kitaba veya internete tekrar bakmıyoruz. Sınavda ise hafızamıza attığımız bilgileri kullanıyoruz. Lakin hafızaya atma süremizi öyle bir ayarlamamız gerekir ki sınav esnasında hafızamızdan üzerinden çalıştığımız bilgiler gelsin. Hafıza şişip daha fazlasını kaldıramadığımız durumda da sınavda çıkma ihtimali olan bilgiler hafızamızda tutulsun isteriz. Bu misalde hafızamız, projemizin host ettiğimiz makinenin belleği olur. Sınava kalan zaman ise bizim Cache'de attığımız bilginin saklanma zamanı olur. Sınvad çıkma ihtimali olan bilgiler ise Cache'e attığımız bilgilerin Priority'si olur.
Veritabanından gelen verileri stabil ve sürekli olarak tekrar tekrar isteyerek sistemi zorlamaktansa, bu verileri ilk sorgu ile çekip cache'ledikten sonra yapılacak olan tüm isteklere bu yapılan cache'leme üzerinden çekilmelidir. Bu işlem daha stabil bir veri ile ileride yapılacak operasyonlarda performans artışı olduğunu gözleriz.
Projelerimizde hız ve veritabanı yükünü azaltmak için güzel bir araç olsa da, dikkat edilmesi gereken bazı hususlar vardır;
Caching Çeşitleri
Local Caching ve Global Caching olmak üzere iki çeşit bulunmaktadır;
Bu yazımızın sonuna geldik. Şimdiye kadar Redis için teorik bir inceleme yaptık ve alt yapımızı hazırlamış olduk. Bir sonraki yazıda Redisde In-Memory ya da Distributed Caching konularını (ikisinden birini) ele alacağız. İlgilenenlerin faydalanması ümidiyle.
Blog Listesi