Redis 1 - Caching Nedir?

Redis 1 - Caching Nedir?

Blog Redis 1 - Caching Nedir?

Redis 1 - Caching Nedir?

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.

Caching Nedir?

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.

Neden Caching Kullanmalıyız?

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.

Caching Yaparken Nelere Dikkat Etmeliyiz?

Projelerimizde hız ve veritabanı yükünü azaltmak için güzel bir araç olsa da, dikkat edilmesi gereken bazı hususlar vardır;

  1. Verilerin Önbelleğe Alımı: Her şeyi önbelleğe almak herne kadar cazip gelse de, sadece sıkça değişmeyen ve tekrar tekrar okunan verileri önbelleğe almamız önemli. Aksi takdirde, önbelleğin güncelliğini korumak için çok fazla çaba harcamak zorunda kalırız ve bu da performansı oldukça düşürür. 
  2. Zaman Kısıtı Belirleme: Önbelleğe alınan verilerin ne kadar süreyle geçerli olacağını belirlemek için süre kısıtlarını dikkatlice ayaralamamız gerekir. Veriler çok çabuk güncellenirse, önbelleğin faydası azalır. Çok uzun süre önbelleğe alınırsa, güncel olmayan verilerin sunulma riskin oluşur.
  3. Bağımlılıkların Yönetilmesi: Önbelleğe alınan verilerin diğer verilerle nasıl ilişkili olduğunu takip etmemiz ve önbellekteki veriler değiştiğinde otomatik olarak güncellenmesini sağlamamız gerekir. 

Caching Çeşitleri

Local Caching ve Global Caching olmak üzere iki çeşit bulunmaktadır;

  1. Local Caching(In-Memory Caching): Projelerimizin bulunduğu bilgisayar üzerindeki hafıza alanında işlev gören caching sitemidir. Diğer adı ise Private Caching‘ dir.
  2. Global Caching(Distributed Caching): Birden fazla server üzerine dağınık olarak kurulmuş fakat bir bütün olarak çalışan caching türüdür. Diğer adı ise Public Caching‘dir.

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.

Hiç yorum Yorum yapılmamış, İlk yorumu sen yap.

Yorum Yap


Bize Ulaşın

Merkez / Mardin

support@technoguide.com.tr

+90 551 859 8721

Haber Bültenİ

Haber Bültenİmİze Kaydolun

Yazılım, teknoloji ve daha fazlası için bizi takip edin.

© Techno Guide. Tüm Hakları Saklıdır.

HTML Codex Tasarımıdır.