﻿
{"id":15170,"date":"2020-04-15T08:32:43","date_gmt":"2020-04-15T08:32:43","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=15170"},"modified":"2020-04-15T08:32:43","modified_gmt":"2020-04-15T08:32:43","slug":"redis-yazi-serisi-6-redis-nedir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/redis-yazi-serisi-6-redis-nedir\/","title":{"rendered":"Redis Yaz\u0131 Serisi 6 &#8211; Redis Nedir?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/redis-yazi-dizisi\/\" rel=\"noopener noreferrer\" target=\"_blank\">Redis yaz\u0131 dizisinin<\/a> \u015fu ana kadar olan i\u00e7eriklerinde Distributed Caching&#8217;i daha net anlamland\u0131rabilmek i\u00e7in cache altyap\u0131s\u0131n\u0131 olu\u015fturacak konular\u0131 de\u011ferlendirmi\u015ftik. Bu makalede ise art\u0131k Redis&#8217;e bir girizgah yapaca\u011f\u0131z ve ne oldu\u011funa dair a\u00e7\u0131klamayla ba\u015flayaca\u011f\u0131z. <\/p>\n<h3>Redis Nedir?<\/h3>\n<p>Bir olguyu anlamland\u0131rmak demek o olguyu temsil eden kavram\u0131n etimolojisini bilmek demektir. Tabi ki de yaz\u0131l\u0131m d\u00fcnyas\u0131n\u0131n etimolojisi 3 g\u00fcnl\u00fck teknoloji \u00f6mr\u00fcne denk oldu\u011fu ve sekt\u00f6re ait terminolojik kelimeler kendi aralar\u0131nda ili\u015fkisel ba\u011f olu\u015fturacak kadar \u00e7ok fazla vakte sahip olamad\u0131klar\u0131 i\u00e7in kelimeler a\u00e7\u0131s\u0131ndan zengin bir k\u00f6k beklememek laz\u0131md\u0131r.<\/p>\n<p>Redis, <strong>RE<\/strong>mote <strong>DI<\/strong>ctionary <strong>S<\/strong>erver(Uzak S\u00f6zl\u00fck Sunucusu) kelimelerinden olu\u015fan, a\u00e7\u0131k kaynak olan(open source) ve veri eri\u015fiminde olabilecek en h\u0131zl\u0131 y\u00f6ntemi benimseyerek datalar\u0131 memory&#8217;de tutan bir NoSQL veritaban\u0131d\u0131r.<\/p>\n<p>NoSQL olmas\u0131n\u0131n yan\u0131nda tutulacak veri t\u00fcr\u00fcne g\u00f6re b\u00fcnyesinde temel yap\u0131 t\u00fcrlerini bar\u0131nd\u0131rmaktad\u0131r. Bu \u00f6zelli\u011fi di\u011fer veritabanlar\u0131na nazaran Redis&#8217;i olduk\u00e7a g\u00fc\u00e7lendirmektedir. Ayr\u0131ca Redis&#8217;i tercih edilebilir k\u0131lan bir ba\u015fka \u00f6zelli\u011fi ise ili\u015fkisel veritabanlar\u0131n\u0131n t\u00fcm\u00fcnden h\u0131zl\u0131 olmas\u0131d\u0131r. <\/p>\n<p>Redis, <a href=\"https:\/\/www.gencayyildiz.com\/blog\/redis-yazi-serisi-3-distributed-caching-nedir\/\" rel=\"noopener noreferrer\" target=\"_blank\">distributed<\/a> bir sistem oldu\u011fundan ve <a href=\"https:\/\/www.gencayyildiz.com\/blog\/redis-yazi-serisi-2-in-memory-caching-nedir\/\" rel=\"noopener noreferrer\" target=\"_blank\">in-memory<\/a> caching&#8217;e nazaran uygulamaya dair t\u00fcm instancelar\u0131n cachelerini tekbir uzak memory&#8217;de tuttu\u011fundan dolay\u0131 net veri tutarl\u0131l\u0131\u011f\u0131 olan bir sistemdir.<\/p>\n<p>Redis&#8217;in verileri bellekte tutan veritaban\u0131 olmas\u0131n\u0131n di\u011fer bir avantaj\u0131 ise veri okuma ve yazma operasyonlar\u0131n\u0131 milisaniyeler cinsinde ger\u00e7ekle\u015ftirebiliyor olmas\u0131d\u0131r. Bundan dolay\u0131d\u0131r ki; Twitter, GitHub, Tumblr, Pinterest, Instagram, Hulu, Flickr ve The New York Times gibi dev markalar bu sunucuyu kullanmaktad\u0131rlar.<\/p>\n<p>Redis her ne kadar caching ama\u00e7l\u0131 kullan\u0131lan bir server olsada kullan\u0131c\u0131lar\u0131n session bilgilerinide tutabildi\u011fimizden dolay\u0131 Session Store, Pub\/Sub paradigmas\u0131n\u0131 desteklemesinden dolay\u0131 Publish\u2013Subscribe Pattern, uygulamada s\u0131ral\u0131 bir \u015fekilde i\u015flenecek olan mesajlar\u0131 \u00f6l\u00e7eklendirilebilir hale getirebilmesinden dolay\u0131 Queues, saya\u00e7 olabilmesinden dolay\u0131 Counters senaryolar\u0131nda kullan\u0131labilmektedir.<\/p>\n<h4>Veri Kal\u0131c\u0131l\u0131\u011f\u0131(Persistence)<\/h4>\n<p>Redis verileri memory&#8217;de tutan bir sistem olsada kal\u0131c\u0131 verileri destekleyebilen bir sistemdir. RAM&#8217;de kal\u0131c\u0131 veriden bahsetmek pekte m\u00fcmk\u00fcn olmad\u0131\u011f\u0131ndan Redis sistemlerde veriler \u00e7e\u015fitli y\u00f6ntemlerle sabit disklere kaydedilebilmektedir. Bunun i\u00e7in &#8216;Snapshotting&#8217; ve &#8216;Slave&#8217; olmak \u00fczere iki yakla\u015f\u0131m benimsenmektedir; &#8216;Snapshotting&#8217;, belirli zaman periyotlar\u0131nda al\u0131nan snapshot&#8217;lar diske kaydedilmesidir. &#8216;Slave&#8217; y\u00f6nteminde ise veriler slavelere kaydedilip masterlardaki y\u00fck hafifletilerek ger\u00e7ekle\u015ftirilir.<\/p>\n<h4>Pipelining<\/h4>\n<p>Redis pipelining \u00f6zelli\u011fi sayesinde istenilen verilerin tamam\u0131n\u0131 tek seferde getirerek olabildi\u011fince h\u0131z\u0131m\u0131za h\u0131z kazand\u0131ran performans a\u00e7\u0131s\u0131ndan avantajl\u0131 bir sistemdir.<\/p>\n<p>K\u0131saca \u00f6zetlersek;<\/p>\n<p><u>Avantajlar\u0131<\/u><\/p>\n<ul>\n<li>Klasik veritabanlar\u0131ndaki CPU kullan\u0131m\u0131n\u0131 memory&#8217;e kayd\u0131rarak CPU maliyetini azaltmaktad\u0131r.<\/li>\n<li>Memory \u00fczerinde tutulan datalar\u0131n i\u015flenmesi \u00e7ok h\u0131zl\u0131 olaca\u011f\u0131 i\u00e7in performans art\u0131\u015f\u0131 sa\u011flamaktad\u0131r.<\/li>\n<li>A\u00e7\u0131k kaynakt\u0131r.(open source)<\/li>\n<li>G\u00fcn\u00fcm\u00fczde bir\u00e7ok programlama dili taraf\u0131ndan desteklenmektedir.<\/li>\n<li>D\u00f6k\u00fcman a\u00e7\u0131s\u0131ndan zengindir.<\/li>\n<li>Temel veri t\u00fcrlerini desteklemektedir.<\/li>\n<li>Senkron \u00e7al\u0131\u015fmaktad\u0131r. Bu y\u00fczden a\u015f\u0131r\u0131 derecede h\u0131zl\u0131d\u0131r.<\/li>\n<li>Datalar\u0131 memory d\u0131\u015f\u0131nda sabit diskede kaydedebilmektedir.<\/li>\n<\/ul>\n<p><u>Dezavantajlar\u0131<\/u><\/p>\n<ul>\n<li>Tutulacak veriyi RAM&#8217;in kapasitesi belirlemektedir.<\/li>\n<li>\u0130li\u015fkisel veritaban\u0131 sistemlerinde oldu\u011fu gibi raporsal nitelikte karma\u015f\u0131k sorgular\u0131 desteklemez.<\/li>\n<li>Transaction olmad\u0131\u011f\u0131 i\u00e7in s\u00fcre\u00e7te al\u0131nan hatalar telafi edilemez.<\/li>\n<\/ul>\n<p><u>Kullan\u0131m Alanlar\u0131<\/u><\/p>\n<ul>\n<li>Caching<\/li>\n<li>Session Storage<\/li>\n<li>Queues<\/li>\n<li>Pub\/Sub<\/li>\n<li>Counter<\/li>\n<\/ul>\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, Redis yaz\u0131 dizisinin \u015fu ana kadar olan i\u00e7eriklerinde Distributed Caching&#8217;i daha net anlamland\u0131rabilmek i\u00e7in cache altyap\u0131s\u0131n\u0131 olu\u015fturacak konular\u0131 de\u011ferlendirmi\u015ftik. Bu makalede ise art\u0131k Redis&#8217;e bir girizgah yapaca\u011f\u0131z ve ne oldu\u011funa dair a\u00e7\u0131klamayla ba\u015flayaca\u011f\u0131z.&#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":15045,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3383],"tags":[3414,3417,3384,3411,3415,3416,3419,3412,3418,3413],"class_list":["post-15170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-redis","tag-persistence","tag-pipelining","tag-redis","tag-redis-nedir","tag-redis-persistence","tag-redis-pipelining","tag-redis-snapshotting","tag-remote-dictionary-server","tag-snapshotting","tag-uzak-sozluk-sunucusu"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15170","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=15170"}],"version-history":[{"count":22,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15170\/revisions"}],"predecessor-version":[{"id":15192,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15170\/revisions\/15192"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/15045"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=15170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=15170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=15170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}