{"id":3081,"date":"2021-12-16T19:18:01","date_gmt":"2021-12-16T16:18:01","guid":{"rendered":"https:\/\/www.domainhizmetleri.com\/blog\/?p=3081"},"modified":"2022-08-12T14:22:56","modified_gmt":"2022-08-12T11:22:56","slug":"redis-nedir","status":"publish","type":"post","link":"https:\/\/www.domainhizmetleri.com\/blog\/redis-nedir\/","title":{"rendered":"Redis Nedir?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Yaz\u0131 \u0130\u00e7eri\u011fi<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u0130\u00e7indekiler Tablosunu A\u00e7\/Kapat\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #0a0a0a;color:#0a0a0a\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #0a0a0a;color:#0a0a0a\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.domainhizmetleri.com\/blog\/redis-nedir\/#Redis_Nasil_Ortaya_Cikti\" >Redis Nas\u0131l Ortaya \u00c7\u0131kt\u0131?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.domainhizmetleri.com\/blog\/redis-nedir\/#Kisaca_Redisin_Calisma_Mantigi\" >K\u0131saca Redis&#8217;in \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.domainhizmetleri.com\/blog\/redis-nedir\/#Redis_Kullanan_Buyuk_Platformlar\" >Redis Kullanan B\u00fcy\u00fck Platformlar<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.domainhizmetleri.com\/blog\/redis-nedir\/#Redis_Icin_Guvenlik_Ipuclari\" >Redis \u0130\u00e7in G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.domainhizmetleri.com\/blog\/redis-nedir\/#Redis_Paylasimli_Olarak_Kullanilabilir_Mi\" >Redis Payla\u015f\u0131ml\u0131 Olarak Kullan\u0131labilir Mi?<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>A\u00e7\u0131l\u0131m\u0131 Remote Dictionary Server (Uzak S\u00f6zl\u00fck Sunucusu) olan <strong>Redis, milyonlarca hatta milyarlarca sat\u0131r yo\u011funluktaki verileri h\u0131zl\u0131 i\u015fleme ve depolama yetene\u011fine sahip a\u00e7\u0131k kaynak kodlu bir veritaban\u0131 sistemidir<\/strong>. Bir \u00e7ok ki\u015fi i\u00e7in veritaban\u0131 \u00fcnvan\u0131n\u0131 haketti\u011fi tart\u0131\u015f\u0131lsa da kendi veri saklama modeline sahip oldu\u011fu ve ba\u015fka bir servise ihtiya\u00e7 duymadan bu verileri modelleyerek bar\u0131nd\u0131rabildi\u011fi i\u00e7in veritaban\u0131 olarak g\u00f6r\u00fcld\u00fc\u011f\u00fcn\u00fc belirtmek isterim. Bu makalemizde genel olarak \u00f6nbellekleme konusundaki ba\u015far\u0131s\u0131 nedeniyle tercih edilen Redis hakk\u0131nda k\u0131sa bilgiler verece\u011fim.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redis_Nasil_Ortaya_Cikti\"><\/span>Redis Nas\u0131l Ortaya \u00c7\u0131kt\u0131?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Redis, Salvatore Sanfilippo(Antirez) taraf\u0131ndan LLOOGG ad\u0131nda bir web analiti\u011fi yaz\u0131l\u0131m\u0131n\u0131n performans\u0131n\u0131 artt\u0131rmak i\u00e7in geli\u015ftirildi. Redis&#8217;in geli\u015fimine ilham veren olay ise Hacker News ad\u0131nda yaz\u0131l\u0131m konular\u0131 i\u00e7in bilgi al\u0131\u015fveri\u015fi olan s\u00f6zl\u00fckteki bir yorumdu. Bu yorum Paul Graham (Lisp programlama dilinin geli\u015ftiricisi) taraf\u0131ndan baz\u0131 Lisp programlar\u0131n\u0131n bellekte depolanan verileri diskte de bir g\u00fcnl\u00fc\u011fe kaydedebilece\u011fini hakk\u0131ndayd\u0131. Salvator Sanfilippo bu konudan ilham alarak uygulama yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda okunmas\u0131 gereken veri yap\u0131lar\u0131n\u0131 g\u00fcnl\u00fckten direkt olarak \u00e7a\u011f\u0131rabilece\u011fini d\u00fc\u015f\u00fcnd\u00fc. Bu sayede herhangi bir API ba\u011flant\u0131s\u0131na gerek duymadan y\u00f6netebilecekti. 2009 y\u0131l\u0131nda yay\u0131nlanan Redis h\u0131zl\u0131 bir \u015fekilde pop\u00fcler olmaya ba\u015flad\u0131 ve VMWare Salvatore Sanfilippo&#8217;yu Redis&#8217;in daha \u00e7ok geli\u015ftirebilmesi i\u00e7in i\u015fe ald\u0131. VMWare Redis projesinin daha h\u0131zl\u0131 ve daha g\u00fc\u00e7l\u00fc bir \u015fekilde geli\u015ftirilmesinde yard\u0131mc\u0131 olabilece\u011fini d\u00fc\u015f\u00fcnerek Pieter Noordhuis&#8217;i de i\u015fe ald\u0131. <\/p>\n\n\n\n<p style=\"font-size:14px\">Stackoverflow taraf\u0131ndan d\u00fczenlenen geli\u015ftirici anketinde 2017&#8217;den beri Redis en \u00e7ok sevilen veritaban\u0131 \u00fcnvan\u0131n\u0131 ta\u015f\u0131maya devam ediyor. Geli\u015ftirici anketine bu link \u00fczerinden ula\u015fabilirsiniz: <a href=\"https:\/\/insights.stackoverflow.com\/survey\/2021#worked-with-vs-want-to-work-with-language-worked-want-prof\" target=\"_blank\" data-type=\"URL\" data-id=\"https:\/\/insights.stackoverflow.com\/survey\/2021#worked-with-vs-want-to-work-with-language-worked-want-prof\" rel=\"noreferrer noopener nofollow\">2021 Developer Survey<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kisaca_Redisin_Calisma_Mantigi\"><\/span>K\u0131saca Redis&#8217;in \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Redis&#8217;te String, Hash, List, Set ve Sorted Set, Bitmap ve HyperLogLogs gibi bilindik veri tipleri saklanabiliyor. Bu verileri RAM \u00fczerinde tutup okuma\/yazma performans\u0131n\u0131 olabilecek en maksimum d\u00fczeye \u00e7\u0131kar\u0131yor ve servisin yeniden ba\u015flat\u0131lmas\u0131ndan sonra bilgilerin yok olmamas\u0131 i\u00e7in arka planda sabit disk \u00fczerine kaydediyor.<\/p>\n\n\n\n<p><a href=\"https:\/\/redis.io\/topics\/cluster-tutorial\" target=\"_blank\" data-type=\"URL\" data-id=\"https:\/\/redis.io\/topics\/cluster-tutorial\" rel=\"noreferrer noopener nofollow\">Cluster <\/a>(yedekli \u00e7al\u0131\u015fma) deste\u011fine sahiptir.<br><br>\u00d6nbellekleme (\u00e7a\u011f\u0131r\u0131lacak verileri \u00f6nbelle\u011fe alarak performans art\u0131\u015f\u0131 yarat\u0131r), pub\/sub i\u015flemi (yay\u0131nlay\u0131c\u0131 ve abone sistemi, belirlemi\u015f oldu\u011funuz kanallara abone olan kullan\u0131c\u0131lara mesaj g\u00f6ndermeyi sa\u011flar), session y\u00f6netimi (oturum a\u00e7ma bilgileri, oyun veya sosyal medyada bulunan puan tablolar\u0131, e-ticaret sitelerinde bulunan sepet b\u00f6l\u00fcm\u00fc gibi b\u00f6l\u00fcmlerin kay\u0131tlar\u0131n\u0131 tutar), Queues&nbsp;(Arka planda uzun s\u00fcrecek i\u015flemleri kuyru\u011fa alarak s\u0131ra ile i\u015flem sa\u011flamas\u0131na yard\u0131m\u0131c\u0131 olur) gibi \u00f6zellikleri sayesinde \u00e7ok fazla tercih ediliyor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redis_Kullanan_Buyuk_Platformlar\"><\/span>Redis Kullanan B\u00fcy\u00fck Platformlar<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Instagram: <\/strong>Instagram&#8217;da, payla\u015f\u0131lan her foto\u011fraf veya videonun kime ait oldu\u011funu g\u00f6rebiliyoruz. Instagram Ana ak\u0131\u015f\u0131n\u0131n performans\u0131n\u0131 artt\u0131rabilmek i\u00e7in bu kay\u0131tlar\u0131 Redis \u00fczerinde y\u00f6netmeyi tercih ettiler.<br><br><strong>Github<\/strong>: Github, h\u0131z performans\u0131n\u0131 artt\u0131rabilmek i\u00e7in y\u00f6nlendirme bilgileri ve \u00e7e\u015fitli di\u011fer veriler i\u00e7in kal\u0131c\u0131 bir anahtar\/de\u011fer deposu olarak Redis&#8217;i kullan\u0131yorlar.<\/p>\n\n\n\n<p><strong>Twitter<\/strong>: Twitter, timeline da payla\u015f\u0131lan tweetlerin kullan\u0131c\u0131 ID&#8217;lerini ve kullan\u0131c\u0131lar\u0131n tweetlerin indexlerini Redis ile saklar. Bu sayede h\u0131zl\u0131 bir \u015fekilde tweet yazabiliyor ve payla\u015f\u0131lm\u0131\u015f tweetleri g\u00f6r\u00fcnt\u00fcleyebiliyoruz.<\/p>\n\n\n\n<p>Bu platformlar haricinde Pinterest, Snapchat, Craigslist, Digg, StackOverflow, Flickr gibi b\u00fcy\u00fck platformlar da Redis&#8217;i tercih ediyor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redis_Icin_Guvenlik_Ipuclari\"><\/span>Redis \u0130\u00e7in G\u00fcvenlik \u0130pu\u00e7lar\u0131<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Yetkisiz IP adreslerinden Redis TCP ba\u011flant\u0131 noktas\u0131na veya UNIX portuna eri\u015fimleri engelleyin.<\/li><li>Eri\u015fim Kontrol Listesi(ACL) ile kullan\u0131c\u0131 kontrol\u00fc ger\u00e7ekle\u015ftirip Redis \u00fczerinde yap\u0131labilece\u011fi i\u015flemlere karar veren bir yetkilendirme ve kontrol sistemi olu\u015fturun.<\/li><li>Protected Mode (Korumal\u0131 Mod) \u00f6zelli\u011fini devre d\u0131\u015f\u0131 b\u0131rakmay\u0131n. Redis&#8217;i herhangi bir \u015fifreleme olmadan \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda Korumal\u0131 Mod sadece loopback interfaces \u00fczerinden gelen sorgular\u0131 yan\u0131tlar ve di\u011fer adreslerden ba\u011flanan ki\u015filere Redis yap\u0131land\u0131rmas\u0131 hakk\u0131nda a\u00e7\u0131klay\u0131c\u0131 bir hata ile d\u00f6n\u00fc\u015f sa\u011flar.<\/li><li>Yetkilendirme katman\u0131 \u00fczerinde parolalar \u015fifrelenmeden d\u00fcz metin halinde saklan\u0131r bu nedenle Bruteforce gibi bir sald\u0131r\u0131 t\u00fcr\u00fcnden korunabilmek i\u00e7in karma\u015f\u0131k ve uzun parolalar kullan\u0131n.<\/li><li>Redis komutlar\u0131n\u0131n tamam\u0131 \u015fifrelenmeden g\u00f6nderilir bu nedenle Redis&#8217;in bulundu\u011fu a\u011f \u00fczerinde y\u00fcksek g\u00fcvenlik \u00f6nlemleri al\u0131nmal\u0131 ve gizli dinleme sa\u011flayabilecek sald\u0131rganlar\u0131n Redis&#8217;e eri\u015fmesinin \u00f6n\u00fcne ge\u00e7ilmeli.<\/li><li>Redis ile istemci aras\u0131nda ba\u011flant\u0131lar\u0131 TLS ile \u015fifreleyin.<\/li><li>Lua ile bir komut dosyas\u0131 olu\u015fturuyorsan\u0131z, g\u00fcvenilir olmayan kaynaklardan komutlar almay\u0131n, \u00e7\u00fcnk\u00fc arka planda zararl\u0131 komutlar \u00e7al\u0131\u015fabilir ve b\u00fcy\u00fck g\u00fcvenlik sorunlar\u0131 ile kar\u015f\u0131 kar\u015f\u0131ya kalabilirsiniz.<\/li><li>Redis komut isimlerini de\u011fi\u015ftirmenize izin verir. Bu \u00f6zelli\u011fi kullanarak \u00f6nemli komutlar\u0131n adlar\u0131n\u0131 kolay tahmin edilemeyen bir isimle g\u00fcncelleyin.<\/li><li>Redis komut \u00e7al\u0131\u015ft\u0131rmak i\u00e7in root yetkisine ihtiya\u00e7 duymaz, bu nedenle g\u00fcvenlik ihlallerinden dolay\u0131 Config komutlar\u0131n\u0131za ula\u015farak sunucu yap\u0131land\u0131rmalar\u0131n\u0131za, istemci program\u0131n\u0131n \u00e7al\u0131\u015fma dizinini veya d\u00f6k\u00fcm dosyas\u0131na eri\u015febilme ve g\u00fcvenilir olmayan kodlar\u0131n \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r. Bu nedenle Redis \u00e7al\u0131\u015ft\u0131rmak i\u00e7in ayr\u0131lac\u0131ks\u0131z bir Redis kullan\u0131c\u0131 olu\u015fturup bu kullan\u0131c\u0131 \u00fczerinden i\u015flem yapman\u0131z \u00f6nerilir.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redis_Paylasimli_Olarak_Kullanilabilir_Mi\"><\/span><strong>Redis Payla\u015f\u0131ml\u0131 Olarak Kullan\u0131labilir Mi?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Redis kullan\u0131m\u0131, t\u00fcm servise eri\u015filebilir olmay\u0131 gerektirir. Redis&#8217;e ula\u015fabilecek k\u00f6t\u00fc niyetli bir kullan\u0131c\u0131 payla\u015f\u0131ml\u0131 ayn\u0131 servis i\u00e7erisinde bulunan t\u00fcm veritaban\u0131 verilerini g\u00f6r\u00fcnt\u00fcleyebilir. Redis verileri \u015fifrelemeden saklad\u0131\u011f\u0131 i\u00e7in ve komut yazabilmek i\u00e7in root yetkisine ihtiyac\u0131 bulunmad\u0131\u011f\u0131 i\u00e7in geri d\u00f6n\u00fclemeyecek d\u00fczeyde g\u00fcvenlik a\u00e7\u0131klar\u0131 yaratabilir. Bu nedenle payla\u015f\u0131ml\u0131 olarak kullan\u0131lmas\u0131 Redis taraf\u0131ndan \u00f6nerilmez. <\/strong><\/p>\n\n\n\n<p>Redis&#8217;i kullanarak projelerinize h\u0131z katmak istiyorsan\u0131z sizlere SSD VDS Sanal Sunucular\u0131m\u0131z\u0131 \u00f6nerebiliriz. G\u00fcvenlik katman\u0131n\u0131 tamamen kendiniz y\u00f6netece\u011finiz i\u00e7in herhangi bir k\u0131s\u0131tlama ya\u015famadan rahatl\u0131kla kullanabilirsiniz.<\/p>\n\n\n\n<p>SSD VDS Sanal Sunucu hizmetlerimiz i\u00e7in bu sayfay\u0131 ziyaret edebilir ve kendinize ait Redis sunucunuzu h\u0131zl\u0131 bir \u015fekilde olu\u015fturabilirsiniz: <\/p>\n\n\n\n<a class=\"mks_button mks_button_medium rounded\" href=\"https:\/\/www.domainhizmetleri.com\/ssd-vds-esxi-sanal-sunucu\/\" target=\"_blank\" style=\"color: #FFFFFF; background-color: #54c13f;\"><i class=\"fa fa-external-link\"><\/i>Uygun fiyatl\u0131 SSD VDS paketleri<\/a><br><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\"\/>\n\n\n\n<p><strong>Kaynaklar<\/strong><br><a href=\"https:\/\/redis.io\/topics\/security\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Redis<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A\u00e7\u0131l\u0131m\u0131 Remote Dictionary Server (Uzak S\u00f6zl\u00fck Sunucusu) olan Redis, milyonlarca hatta milyarlarca sat\u0131r yo\u011funluktaki verileri h\u0131zl\u0131 i\u015fleme ve depolama yetene\u011fine sahip a\u00e7\u0131k kaynak kodlu bir veritaban\u0131 sistemidir. Bir \u00e7ok ki\u015fi i\u00e7in veritaban\u0131 \u00fcnvan\u0131n\u0131 haketti\u011fi tart\u0131\u015f\u0131lsa da kendi veri saklama modeline sahip oldu\u011fu ve ba\u015fka bir servise ihtiya\u00e7 duymadan bu verileri modelleyerek bar\u0131nd\u0131rabildi\u011fi i\u00e7in veritaban\u0131 olarak [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":3188,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[145],"tags":[167,165,166],"class_list":["post-3081","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nedir-nasil","tag-cache","tag-redis","tag-veritabani"],"views":629,"_links":{"self":[{"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/posts\/3081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/comments?post=3081"}],"version-history":[{"count":29,"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/posts\/3081\/revisions"}],"predecessor-version":[{"id":3991,"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/posts\/3081\/revisions\/3991"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/media\/3188"}],"wp:attachment":[{"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/media?parent=3081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/categories?post=3081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.domainhizmetleri.com\/blog\/wp-json\/wp\/v2\/tags?post=3081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}