﻿
{"id":15024,"date":"2020-04-09T15:31:38","date_gmt":"2020-04-09T15:31:38","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=15024"},"modified":"2020-04-09T15:33:08","modified_gmt":"2020-04-09T15:33:08","slug":"redis-yazi-serisi-1-caching-nedir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/redis-yazi-serisi-1-caching-nedir\/","title":{"rendered":"Redis Yaz\u0131 Serisi 1 &#8211; Caching Nedir?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde uygulamalar\u0131m\u0131zda veri ak\u0131\u015f\u0131n\u0131 g\u00fc\u00e7lendirmek ve kullan\u0131c\u0131larla etkile\u015fim s\u00fcrecinde h\u0131z ve performans a\u00e7\u0131s\u0131ndan maliyeti d\u00fc\u015f\u00fcrmek i\u00e7in kullan\u0131lan Caching tekni\u011finin ne oldu\u011funu ve \u00e7e\u015fitlerinin neler olabilece\u011fini inceleyece\u011fiz.<\/p>\n<h3>Caching Nedir?<\/h3>\n<p>\u00d6zellikle web olmak \u00fczere g\u00fcn\u00fcm\u00fczdeki yaz\u0131l\u0131m uygulamalar\u0131nda eri\u015fimci say\u0131s\u0131 artt\u0131k\u00e7a kullan\u0131lan kaynaklar\u0131n yetersizli\u011fi s\u00f6z konusu olabilmekte ve b\u00f6yle bir durumda sistem kaynaklar\u0131n\u0131 artt\u0131rarak ekstra maliyetin getirisi olan ekstra b\u00fct\u00e7e gereksinimi ile kar\u015f\u0131la\u015fabilmekteyiz. Bu ka\u00e7\u0131n\u0131lmaz s\u00fcre\u00e7te artt\u0131r\u0131lan kaynak kapasitelerinin yan\u0131nda kullan\u0131c\u0131lar ile ger\u00e7ekle\u015ftirilen etkile\u015fimler neticesinde ortaya \u00e7\u0131kan maliyetleri de d\u00fc\u015f\u00fcrmemiz gerekmektedir.<\/p>\n<p>Bu maliyetlere sebep olabilen durumlar i\u00e7in verilebilecek onlarca \u00f6rnekten sadece veritaban\u0131n\u0131 ele al\u0131rsak e\u011fer kullan\u0131c\u0131dan gelen istekler do\u011frultusunda milyarlarca veri yaz\u0131l\u0131m ile veritaban\u0131 aras\u0131nda transfer edilmekte ve b\u00f6yle bir durumda inan\u0131lmaz bir enerji t\u00fcketimi ger\u00e7ekle\u015ftirilmektedir. Bu t\u00fcketim zamanla veritaban\u0131n\u0131n ihtiya\u00e7lar\u0131 kar\u015f\u0131lamayacak hale gelmesine sebep olacak ve nihayetinde veritaban\u0131 sunucusuna ekstradan yap\u0131lacak yat\u0131r\u0131mla sonu\u00e7lanacakt\u0131r.<\/p>\n<p>\u0130\u015fte b\u00f6yle durumlarda, ekstradan yat\u0131r\u0131mlara gerek kalmaks\u0131z\u0131n veritabanlar\u0131ndaki y\u00fck\u00fc azaltabilmek ve yap\u0131lan isteklerin b\u00fcy\u00fck \u00e7o\u011funlu\u011funu daha dinamik bir \u015fekilde kar\u015f\u0131layabilmek i\u00e7in Caching mekanizmas\u0131 kullan\u0131lmaktad\u0131r.<\/p>\n<p>Caching, \u00e7ok s\u0131k kullan\u0131lan datalar\u0131n her talep neticesinde sistemi tekrar tekrar yormaks\u0131z\u0131n daha h\u0131zl\u0131 elde edilmesi ve i\u015flenebilmesi i\u00e7in veritaban\u0131 d\u0131\u015f\u0131ndaki farkl\u0131 alanlara kaydedilmesi tekni\u011fidir.<\/p>\n<p>Caching do\u011fru yer ve zamanda kullan\u0131ld\u0131\u011f\u0131 taktirde uygulama performans\u0131 a\u00e7\u0131s\u0131ndan olduk\u00e7a y\u00fcksek bir performans art\u0131\u015f\u0131 ve \u00f6l\u00e7eklendirilebilirlik sa\u011flamakta ve uygulamadaki trafik yo\u011funlu\u011funa g\u00f6re 100 ki\u015fide g\u00f6sterilen performans\u0131 1000000 ki\u015fide de orant\u0131sal farka ald\u0131rmaks\u0131z\u0131n ayn\u0131 kullan\u0131c\u0131 deneyimiyle sunmaktad\u0131r. Ve t\u00fcm bunlar\u0131 ekstradan bir kapasite takviyesine gerek kalmaks\u0131z\u0131n ger\u00e7ekle\u015ftirmektedir.<\/p>\n<h3>Neden Caching Kullanmal\u0131y\u0131z?<\/h3>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Redis-Yaz\u0131-Serisi-1-Caching-Nedir.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-15033\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Redis-Yaz\u0131-Serisi-1-Caching-Nedir-300x176.png\" alt=\"Redis Yaz\u0131 Serisi 1 - Caching Nedir?\" width=\"300\" height=\"176\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Redis-Yaz\u0131-Serisi-1-Caching-Nedir-300x176.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Redis-Yaz\u0131-Serisi-1-Caching-Nedir.png 680w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<u>Stabil<\/u> bir \u015fekilde ve s\u00fcrekli veritaban\u0131ndan \u00e7ekilen verileri her istekte tekrar tekrar veritaban\u0131ndan elde ederek sistemi yormaktansa, bu verileri ilk sorgu neticesinde elde ettikten sonra cachelemeli ve sonraki t\u00fcm isteklere bu cachelenmi\u015f veriler g\u00f6nderilmelidir. Bu i\u015flem bir \u00f6nceki c\u00fcmlede de vurguland\u0131\u011f\u0131 gibi &#8216;stabil&#8217; verinin s\u00f6z konusu oldu\u011fu t\u00fcm operasyonlar i\u00e7in b\u00fcy\u00fck performans art\u0131\u015f\u0131 g\u00f6sterecektir.<\/p>\n<h3>Caching Durumlar\u0131nda Dikkat Edilmesi Gerekenler<\/h3>\n<p>\u0130lk olarak bilmemiz gereken temel kural, cache edilmi\u015f verilerin orjinal verilerin kopyas\u0131 oldu\u011fudur. S\u00fcre\u00e7te veritaban\u0131ndaki orjinal verilerde olabilecek modifikasyonlar elbette cachelenmi\u015f verilerin bayatlamas\u0131na sebep olacakt\u0131rlar. Dolay\u0131s\u0131yla, bu olas\u0131 duruma istinaden cachede tutulan verilerin belli bir zamandan sonra imha edilmesi ve veritaban\u0131ndan tekrar elde edilmesi gerekmektedir. Aksi taktirde bu durumda uygulama bayat verilerle beslenmeye devam ederek, \u00f6ng\u00f6r\u00fclemez krizlere sebebiyet verebilir. Bunun i\u00e7in cachede tutulacak veriler i\u00e7in ge\u00e7erlilik s\u00fcresi(expiration time) taraf\u0131m\u0131zca konfig\u00fcre edilerek olas\u0131 handikap k\u0131s\u0131rla\u015ft\u0131r\u0131labilir.<\/p>\n<h3>Caching \u00c7e\u015fitleri Nelerdir?<\/h3>\n<p>Caching, &#8216;<em>Local Caching<\/em>&#8216; ve &#8216;<em>Global Caching<\/em>&#8216; olmak \u00fczere iki ana ba\u015fl\u0131k alt\u0131nda de\u011ferlendirilmektedir.<\/p>\n<ul>\n<li><strong>Local Caching(<em>In-Memory Caching<\/em>)<\/strong><br \/>\nUygulaman\u0131n bulundu\u011fu bilgisayar \u00fczerindeki haf\u0131za alan\u0131nda faaliyette bulunan caching sitemidir. Bu sistemlere &#8216;<em>Private Caching<\/em>&#8216;de denmektedir.<\/li>\n<li><strong>Global Caching(<em>Distributed Caching<\/em>)<\/strong><br \/>\nBirden fazla sunucu \u00fczerine da\u011f\u0131t\u0131k olarak kurulmu\u015f lakin bir b\u00fct\u00fcn olarak \u00e7al\u0131\u015fan caching sistemidir. Bu sistemlere ise &#8216;<em>Public Caching<\/em>&#8216; denmektedir.<\/li>\n<\/ul>\n<p>Sonraki i\u00e7eri\u011fimizde caching \u00e7e\u015fitlerinden In-Memory Caching&#8217;in ne oldu\u011funa dair detayl\u0131 bir izahatte bulunaca\u011f\u0131z.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde uygulamalar\u0131m\u0131zda veri ak\u0131\u015f\u0131n\u0131 g\u00fc\u00e7lendirmek ve kullan\u0131c\u0131larla etkile\u015fim s\u00fcrecinde h\u0131z ve performans a\u00e7\u0131s\u0131ndan maliyeti d\u00fc\u015f\u00fcrmek i\u00e7in kullan\u0131lan Caching tekni\u011finin ne oldu\u011funu ve \u00e7e\u015fitlerinin neler olabilece\u011fini inceleyece\u011fiz. Caching Nedir? \u00d6zellikle web olmak \u00fczere&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":15033,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3383],"tags":[3386,3387,3388,3385,3390,3391,3392,3389,3393,3394,3395,3384],"class_list":["post-15024","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-redis","tag-cache","tag-cache-cesitleri","tag-caching-cesitleri","tag-caching-nedir","tag-distributed-caching","tag-expiration-time","tag-global-caching","tag-in-memory-caching","tag-local-caching","tag-private-caching","tag-public-caching","tag-redis"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=15024"}],"version-history":[{"count":19,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15024\/revisions"}],"predecessor-version":[{"id":15054,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15024\/revisions\/15054"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/15033"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=15024"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=15024"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=15024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}