{"id":30812,"date":"2025-10-02T10:41:15","date_gmt":"2025-10-02T07:41:15","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30812"},"modified":"2025-10-02T10:41:15","modified_gmt":"2025-10-02T07:41:15","slug":"ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/","title":{"rendered":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi<\/h2>\n<p>Redis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Genellikle bir veritaban\u0131, \u00f6nbellek ve mesaj arac\u0131s\u0131 olarak kullan\u0131l\u0131r. H\u0131z, esneklik ve zengin veri yap\u0131lar\u0131 sunar. Ancak, tek bir Redis \u00f6rne\u011fi, belirli bir noktada performans ve depolama limitlerine ula\u015fabilir. \u0130\u015fte bu noktada Redis K\u00fcmesi (Redis Cluster) devreye girer. Bu makalede, Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011flamak amac\u0131yla Redis K\u00fcmesi&#8217;nin nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>Redis K\u00fcmesi Nedir ve Neden \u0130htiya\u00e7 Duyar\u0131z?<\/h3>\n<p>Redis K\u00fcmesi, Redis&#8217;in verileri birden \u00e7ok Redis \u00f6rne\u011fine otomatik olarak b\u00f6lerek (sharding) yatay \u00f6l\u00e7eklenebilirlik sa\u011flayan da\u011f\u0131t\u0131k bir uygulamas\u0131d\u0131r. Ayr\u0131ca, k\u00fcmedeki bir ana d\u00fc\u011f\u00fcm (master node) veya onun bir kopyas\u0131 (replica) ba\u015far\u0131s\u0131z oldu\u011funda sistemin \u00e7al\u0131\u015fmaya devam etmesini sa\u011flayan y\u00fcksek eri\u015filebilirlik (high availability) \u00f6zellikleri sunar.<\/p>\n<p>Redis K\u00fcmesi&#8217;ne ihtiya\u00e7 duymam\u0131z\u0131n ba\u015fl\u0131ca nedenleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Y\u00fcksek Eri\u015filebilirlik:<\/strong> Bir ana d\u00fc\u011f\u00fcm\u00fcn \u00e7\u00f6kmesi durumunda, k\u00fcme otomatik olarak o ana d\u00fc\u011f\u00fcm\u00fcn bir kopyas\u0131n\u0131 yeni ana d\u00fc\u011f\u00fcm olarak atar, b\u00f6ylece veri kayb\u0131n\u0131 ve hizmet kesintisini \u00f6nler.<br \/>\n*   <strong>Yatay \u00d6l\u00e7eklenebilirlik:<\/strong> Verileri birden \u00e7ok d\u00fc\u011f\u00fcme da\u011f\u0131tarak, tek bir Redis \u00f6rne\u011finin depolama ve performans s\u0131n\u0131rlar\u0131n\u0131 a\u015far. Daha fazla veri depolayabilir ve daha y\u00fcksek bir i\u015flem hacmini (throughput) kald\u0131rabilir.<br \/>\n*   <strong>Veri B\u00f6l\u00fcmleme (Data Partitioning):<\/strong> K\u00fcme, verileri otomatik olarak 16384 &#8220;hash slot&#8221;una b\u00f6ler ve bu slotlar\u0131 k\u00fcmedeki ana d\u00fc\u011f\u00fcmler aras\u0131nda da\u011f\u0131t\u0131r. Bu sayede, her ana d\u00fc\u011f\u00fcm veri setinin bir alt k\u00fcmesini i\u015fler.<\/p>\n<p>Ubuntu 14.04, g\u00fcncel bir i\u015fletim sistemi olmasa da, Redis Cluster konseptleri ve yap\u0131land\u0131rma ad\u0131mlar\u0131 temel olarak ayn\u0131 kal\u0131r. Bu rehber, Redis&#8217;in 3.0 ve \u00fczeri s\u00fcr\u00fcmlerini hedeflemektedir, \u00e7\u00fcnk\u00fc k\u00fcme \u00f6zelli\u011fi bu s\u00fcr\u00fcmlerle birlikte gelmi\u015ftir.<\/p>\n<h3>Redis K\u00fcmesi Mimarisi<\/h3>\n<p>Redis K\u00fcmesi, d\u00fc\u011f\u00fcmlerin (nodes) birbirleriyle ileti\u015fim kurdu\u011fu, veri setinin 16384 hash slot&#8217;una b\u00f6l\u00fcnd\u00fc\u011f\u00fc ve her slotun bir ana d\u00fc\u011f\u00fcme atand\u0131\u011f\u0131 bir mimariye sahiptir.<\/p>\n<p>*   <strong>Hash Slotlar:<\/strong> Redis K\u00fcmesi, veri setini 16384 adet mant\u0131ksal hash slot&#8217;una b\u00f6ler. Bir anahtar\u0131n hangi slota ait oldu\u011fu, anahtar\u0131n CRC16 algoritmas\u0131ndan ge\u00e7irilip 16384&#8217;e g\u00f6re modunun al\u0131nmas\u0131yla belirlenir. Bu slotlar, k\u00fcmedeki ana d\u00fc\u011f\u00fcmler aras\u0131nda dengeli bir \u015fekilde da\u011f\u0131t\u0131l\u0131r.<br \/>\n*   <strong>Ana ve Kopya D\u00fc\u011f\u00fcmler (Master and Replica Nodes):<\/strong> Her slot aral\u0131\u011f\u0131 i\u00e7in bir ana d\u00fc\u011f\u00fcm bulunur. Y\u00fcksek eri\u015filebilirlik sa\u011flamak amac\u0131yla, her ana d\u00fc\u011f\u00fcm\u00fcn bir veya daha fazla kopyas\u0131 (replica) olabilir. Bir ana d\u00fc\u011f\u00fcm ba\u015far\u0131s\u0131z oldu\u011funda, onun kopyalar\u0131ndan biri otomatik olarak yeni ana d\u00fc\u011f\u00fcm olarak atan\u0131r.<br \/>\n*   <strong>Gossip Protokol\u00fc:<\/strong> K\u00fcmedeki d\u00fc\u011f\u00fcmler, birbirlerinin durumunu ve k\u00fcmenin genel yap\u0131land\u0131rmas\u0131n\u0131 Gossip protokol\u00fc arac\u0131l\u0131\u011f\u0131yla \u00f6\u011frenir ve g\u00fcnceller. Bu, merkezi bir koordinasyon mekanizmas\u0131na ihtiya\u00e7 duyulmadan da\u011f\u0131t\u0131k bir yap\u0131 sa\u011flar.<br \/>\n*   <strong>\u0130stemci Y\u00f6nlendirmesi (Client Redirection):<\/strong> Bir istemci, yanl\u0131\u015f anahtar\u0131 sorgulad\u0131\u011f\u0131nda (yani, anahtar\u0131n ait oldu\u011fu slot ba\u015fka bir d\u00fc\u011f\u00fcmdeyse), Redis sunucusu istemciye <code>MOVED<\/code> veya <code>ASK<\/code> y\u00f6nlendirme hatalar\u0131 g\u00f6nderir. K\u00fcme fark\u0131nda olan istemciler (cluster-aware clients), bu y\u00f6nlendirmeleri i\u015fleyerek do\u011fru d\u00fc\u011f\u00fcme otomatik olarak ba\u011flan\u0131r.<\/p>\n<p>\u00dcretim ortam\u0131 i\u00e7in minimum \u00f6nerilen k\u00fcme yap\u0131land\u0131rmas\u0131, her ana d\u00fc\u011f\u00fcm i\u00e7in en az bir kopya olmak \u00fczere 3 ana d\u00fc\u011f\u00fcm ve 3 kopya d\u00fc\u011f\u00fcm\u00fc, yani toplam 6 d\u00fc\u011f\u00fcmd\u00fcr. Bu, k\u00fcmenin iki ana d\u00fc\u011f\u00fcm\u00fcn veya bir ana d\u00fc\u011f\u00fcm ve onun kopyas\u0131n\u0131n ayn\u0131 anda ba\u015far\u0131s\u0131z olmas\u0131na dayanabilmesini sa\u011flar.<\/p>\n<h3>Gereksinimler ve \u00d6n Haz\u0131rl\u0131klar<\/h3>\n<p>Redis K\u00fcmesi yap\u0131land\u0131rmas\u0131na ba\u015flamadan \u00f6nce baz\u0131 gereksinimleri kar\u015f\u0131lamam\u0131z ve \u00f6n haz\u0131rl\u0131klar\u0131 yapmam\u0131z gerekmektedir.<\/p>\n<h4>Sistem Gereksinimleri<\/h4>\n<p>*   <strong>Ubuntu 14.04 Sunucular:<\/strong> En az 6 adet Ubuntu 14.04 i\u015fletim sistemine sahip sunucu veya sanal makine (3 ana d\u00fc\u011f\u00fcm, 3 kopya d\u00fc\u011f\u00fcm i\u00e7in). Her sunucunun yeterli RAM, CPU ve depolama alan\u0131na sahip oldu\u011fundan emin olun.<br \/>\n*   <strong>A\u011f Ba\u011flant\u0131s\u0131:<\/strong> T\u00fcm d\u00fc\u011f\u00fcmlerin birbirleriyle sorunsuz bir \u015fekilde ileti\u015fim kurabilmesi gerekir. Her d\u00fc\u011f\u00fcm\u00fcn statik bir IP adresine sahip olmas\u0131 \u00f6nerilir.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> T\u00fcm sunuculara SSH \u00fczerinden root veya sudo yetkilerine sahip bir kullan\u0131c\u0131 ile eri\u015fiminiz olmal\u0131d\u0131r.<\/p>\n<h4>Yaz\u0131l\u0131m Gereksinimleri<\/h4>\n<p>Redis K\u00fcmesi i\u00e7in Redis 3.0 veya \u00fczeri bir s\u00fcr\u00fcm gereklidir. Ubuntu 14.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda bulunan Redis s\u00fcr\u00fcm\u00fc genellikle eski olabilir. Bu nedenle, Redis&#8217;i kaynak koddan derlemek en g\u00fcvenli yakla\u015f\u0131md\u0131r.<\/p>\n<p>*   <strong>Redis 3.0+:<\/strong> Kaynak koddan derlenecek.<br \/>\n*   <strong><code>ruby<\/code> ve <code>rubygems<\/code>:<\/strong> Redis&#8217;in k\u00fcme y\u00f6netim arac\u0131 olan <code>redis-trib.rb<\/code>&#8216;yi \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gereklidir.<br \/>\n*   <strong><code>gcc<\/code>, <code>make<\/code> ve di\u011fer derleme ara\u00e7lar\u0131:<\/strong> Redis&#8217;i kaynak koddan derlemek i\u00e7in.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131<\/h4>\n<p>Her d\u00fc\u011f\u00fcmde, Redis&#8217;in istemci ba\u011flant\u0131lar\u0131 ve k\u00fcme i\u00e7i ileti\u015fim i\u00e7in kulland\u0131\u011f\u0131 portlar\u0131n a\u00e7\u0131k olmas\u0131 gerekir.<\/p>\n<p>*   <strong>\u0130stemci Portu (Default: 6379):<\/strong> Redis istemcilerinin ve di\u011fer Redis d\u00fc\u011f\u00fcmlerinin veri al\u0131\u015fveri\u015fi i\u00e7in kulland\u0131\u011f\u0131 port.<br \/>\n*   <strong>K\u00fcme \u0130leti\u015fim Portu (Default: 16379):<\/strong> Redis K\u00fcmesi d\u00fc\u011f\u00fcmlerinin Gossip protokol\u00fc ve di\u011fer k\u00fcme i\u00e7i ileti\u015fim i\u00e7in kulland\u0131\u011f\u0131 port. Bu port, istemci portunun 10000 fazlas\u0131d\u0131r.<\/p>\n<p>\u00d6rnek olarak, her d\u00fc\u011f\u00fcmde g\u00fcvenlik duvar\u0131n\u0131 yap\u0131land\u0131rmak i\u00e7in (UFW kullan\u0131l\u0131yorsa):<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 6379\/tcp\nsudo ufw allow 16379\/tcp\nsudo ufw enable\nsudo ufw status<\/code><\/pre>\n<h3>Redis Kurulumu (Kaynak Koddan Derleme)<\/h3>\n<p>Ubuntu 14.04&#8217;\u00fcn varsay\u0131lan depolar\u0131 genellikle Redis 2.8 gibi eski s\u00fcr\u00fcmleri i\u00e7erir. Redis Cluster \u00f6zelli\u011fi Redis 3.0 ile geldi\u011fi i\u00e7in, Redis&#8217;i kaynak koddan derlemek en iyi y\u00f6ntemdir. Bu, istedi\u011fimiz Redis s\u00fcr\u00fcm\u00fcn\u00fc kullanmam\u0131z\u0131 sa\u011flar.<\/p>\n<p>Her bir sunucuda a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 tekrarlay\u0131n:<\/p>\n<p>1.  <strong>Gerekli Derleme Ara\u00e7lar\u0131n\u0131 Y\u00fckleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\n    sudo apt-get install build-essential tcl<\/code><\/pre>\n<p>2.  <strong>Redis Kaynak Kodunu \u0130ndirme:<\/strong><br \/>\n    En g\u00fcncel kararl\u0131 Redis s\u00fcr\u00fcm\u00fcn\u00fc Redis resmi web sitesinden kontrol edin (\u00f6rne\u011fin, 6.2.6 veya daha yeni bir s\u00fcr\u00fcm).<\/p>\n<pre><code class=\"language-bash\">wget http:\/\/download.redis.io\/releases\/redis-6.2.6.tar.gz\n    tar xzf redis-6.2.6.tar.gz\n    cd redis-6.2.6<\/code><\/pre>\n<p>3.  <strong>Redis&#8217;i Derleme ve Kurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">make\n    sudo make install<\/code><\/pre>\n<p>    <code>make test<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak derlemenin ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulayabilirsiniz.<\/p>\n<p>4.  <strong>Redis \u00c7al\u0131\u015ft\u0131r\u0131labilir Dosyalar\u0131n\u0131 Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">redis-cli --version\n    redis-server --version<\/code><\/pre>\n<p>    Bu komutlar, do\u011fru Redis s\u00fcr\u00fcm\u00fcn\u00fcn y\u00fcklendi\u011fini g\u00f6stermelidir.<\/p>\n<h3>Redis K\u00fcme D\u00fc\u011f\u00fcmlerini Yap\u0131land\u0131rma<\/h3>\n<p>Her bir sunucuda, bir veya daha fazla Redis \u00f6rne\u011fini k\u00fcme d\u00fc\u011f\u00fcm\u00fc olarak yap\u0131land\u0131rmam\u0131z gerekiyor. \u00dcretim ortam\u0131nda her sunucuda tek bir Redis \u00f6rne\u011fi \u00e7al\u0131\u015ft\u0131rmak en yayg\u0131n yakla\u015f\u0131md\u0131r. Ancak test ortamlar\u0131 i\u00e7in ayn\u0131 sunucuda farkl\u0131 portlarda birden fazla Redis \u00f6rne\u011fi \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu rehber, her sunucuda tek bir Redis \u00f6rne\u011fi \u00e7al\u0131\u015ft\u0131r\u0131yormu\u015f gibi yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 g\u00f6sterecektir.<\/p>\n<p>Her sunucuda, Redis i\u00e7in ayr\u0131 bir yap\u0131land\u0131rma dizini ve veri dizini olu\u015fturaca\u011f\u0131z. \u00d6rne\u011fin, 6379 portunu kullanan bir Redis \u00f6rne\u011fi i\u00e7in:<\/p>\n<p>1.  <strong>Dizin Yap\u0131s\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/etc\/redis-cluster\/6379\n    sudo mkdir -p \/var\/lib\/redis\/6379\n    sudo chown redis:redis \/var\/lib\/redis\/6379 # E\u011fer redis kullan\u0131c\u0131s\u0131 varsa\n    # Yoksa, uygun bir kullan\u0131c\u0131ya veya root'a yetki verin<\/code><\/pre>\n<p>2.  <strong>Redis Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma (<code>redis.conf<\/code>):<\/strong><br \/>\n    Her d\u00fc\u011f\u00fcm i\u00e7in <code>\/etc\/redis-cluster\/6379\/redis.conf<\/code> dosyas\u0131n\u0131 olu\u015fturun ve a\u015fa\u011f\u0131daki ayarlar\u0131 ekleyin. <code><your_server_ip><\/code> yerine sunucunuzun ger\u00e7ek IP adresini yazmay\u0131 unutmay\u0131n.<\/p>\n<pre><code class=\"language-conf\">port 6379\n    bind <your_server_ip>\n    daemonize yes\n    pidfile \/var\/run\/redis_6379.pid\n    logfile \/var\/log\/redis_6379.log\n    dir \/var\/lib\/redis\/6379\n    dbfilename dump_6379.rdb\n\n    # Redis Cluster Ayarlar\u0131\n    cluster-enabled yes\n    cluster-config-file nodes-6379.conf\n    cluster-node-timeout 5000\n    appendonly yes # Veri kal\u0131c\u0131l\u0131\u011f\u0131 i\u00e7in AOF'u etkinle\u015ftirin\n    appendfilename \"appendonly_6379.aof\"\n\n    # Di\u011fer \u00f6nerilen ayarlar\n    # maxmemory <size> # Bellek limitini ayarlay\u0131n, \u00f6rne\u011fin 2gb\n    # maxmemory-policy allkeys-lru # Bellek doldu\u011funda hangi anahtarlar\u0131n at\u0131laca\u011f\u0131n\u0131 belirtin\n    # requirepass your_password # \u0130stemci kimlik do\u011frulamas\u0131 i\u00e7in \u015fifre belirleyin\n    # masterauth your_password # K\u00fcme i\u00e7indeki master-replica kimlik do\u011frulamas\u0131<\/code><\/pre>\n<p>    <strong>\u00d6nemli Notlar:<\/strong><br \/>\n    *   <code>bind <your_server_ip><\/code>: <code>127.0.0.1<\/code> yerine sunucunun d\u0131\u015far\u0131dan eri\u015filebilir IP adresini kullan\u0131n. Aksi takdirde di\u011fer d\u00fc\u011f\u00fcmler ba\u011flanamaz.<br \/>\n    *   <code>cluster-enabled yes<\/code>: Bu, Redis \u00f6rne\u011fini bir k\u00fcme d\u00fc\u011f\u00fcm\u00fc olarak etkinle\u015ftirir.<br \/>\n    *   <code>cluster-config-file nodes-6379.conf<\/code>: Bu dosya, k\u00fcme durumunu (hangi d\u00fc\u011f\u00fcmler var, hangi slotlar kime ait vb.) Redis taraf\u0131ndan otomatik olarak y\u00f6netilir. Elle d\u00fczenlemeyin.<br \/>\n    *   <code>appendonly yes<\/code>: Veri kal\u0131c\u0131l\u0131\u011f\u0131 i\u00e7in \u00f6nemlidir. Redis yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda verilerinizi kaybetmemek i\u00e7in AOF (Append Only File) dosyas\u0131n\u0131 kullan\u0131r.<br \/>\n    *   <code>requirepass<\/code> ve <code>masterauth<\/code>: \u00dcretim ortamlar\u0131nda g\u00fcvenlik i\u00e7in bu \u015fifreleri ayarlaman\u0131z \u015fiddetle tavsiye edilir.<\/p>\n<p>3.  <strong>Redis Servislerini Ba\u015flatma:<\/strong><br \/>\n    Her d\u00fc\u011f\u00fcmde, yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z Redis \u00f6rne\u011fini ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo redis-server \/etc\/redis-cluster\/6379\/redis.conf<\/code><\/pre>\n<p>    T\u00fcm 6 sunucuda bu ad\u0131mlar\u0131 tekrarlay\u0131n. Her sunucunun kendi IP adresi ve 6379 portu ile \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<\/p>\n<p>4.  <strong>Redis Servislerinin \u00c7al\u0131\u015ft\u0131\u011f\u0131n\u0131 Do\u011frulama:<\/strong><\/p>\n<pre><code class=\"language-bash\">ps aux | grep redis-server\n    redis-cli -p 6379 ping<\/code><\/pre>\n<p>    <code>ping<\/code> komutu <code>PONG<\/code> yan\u0131t\u0131 vermeli ve <code>ps aux<\/code> \u00e7\u0131kt\u0131s\u0131 Redis sunucusunun \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6stermelidir. Ayr\u0131ca, her sunucuda <code>cluster info<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak k\u00fcme modunun etkin olup olmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">redis-cli -p 6379 cluster info<\/code><\/pre>\n<p>    Bu a\u015famada <code>cluster_state:fail<\/code> veya benzeri bir durum g\u00f6rmeniz normaldir, \u00e7\u00fcnk\u00fc k\u00fcme hen\u00fcz olu\u015fturulmam\u0131\u015ft\u0131r.<\/p>\n<h3>Redis K\u00fcmesini Olu\u015fturma<\/h3>\n<p>T\u00fcm Redis d\u00fc\u011f\u00fcmleri ba\u015flat\u0131ld\u0131ktan sonra, <code>redis-trib.rb<\/code> arac\u0131 ile k\u00fcmemizi olu\u015fturabiliriz. <code>redis-trib.rb<\/code> arac\u0131, Redis&#8217;in kaynak kod dizininde (<code>src<\/code> klas\u00f6r\u00fcnde) bulunur.<\/p>\n<p>1.  <strong>Ruby ve Redis Gem&#8217;ini Y\u00fckleme:<\/strong><br \/>\n    <code>redis-trib.rb<\/code> bir Ruby beti\u011fi oldu\u011fu i\u00e7in, Ruby ve Redis gem&#8217;ine ihtiyac\u0131m\u0131z var. Herhangi bir sunucuda (tercihen k\u00fcme olu\u015fturma komutunu \u00e7al\u0131\u015ft\u0131raca\u011f\u0131n\u0131z sunucuda) a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install ruby rubygems\n    sudo gem install redis<\/code><\/pre>\n<p>2.  <strong>K\u00fcme Olu\u015fturma Komutunu \u00c7al\u0131\u015ft\u0131rma:<\/strong><br \/>\n    Redis kaynak kod dizininize gidin (\u00f6rne\u011fin, <code>cd redis-6.2.6\/src<\/code>). Ard\u0131ndan, a\u015fa\u011f\u0131daki komutu kullanarak k\u00fcmenizi olu\u015fturun. Bu \u00f6rnekte 3 ana d\u00fc\u011f\u00fcm ve her ana d\u00fc\u011f\u00fcm i\u00e7in 1 kopya (toplam 3 kopya) olu\u015fturaca\u011f\u0131z, yani toplam 6 d\u00fc\u011f\u00fcm kullanaca\u011f\u0131z.<\/p>\n<p>    K\u00fcmenizdeki t\u00fcm sunucular\u0131n IP adreslerini ve portlar\u0131n\u0131 (genellikle 6379) listeleyin.<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb create --replicas 1 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379 192.168.1.104:6379 192.168.1.105:6379 192.168.1.106:6379<\/code><\/pre>\n<p>    *   <code>--replicas 1<\/code>: Her ana d\u00fc\u011f\u00fcm i\u00e7in bir kopya olu\u015fturulaca\u011f\u0131n\u0131 belirtir.<br \/>\n    *   Ard\u0131ndan, k\u00fcmedeki t\u00fcm Redis d\u00fc\u011f\u00fcmlerinin IP:Port adreslerini s\u0131ralars\u0131n\u0131z. <code>redis-trib.rb<\/code> otomatik olarak ana d\u00fc\u011f\u00fcmleri ve kopyalar\u0131n\u0131 atar ve hash slotlar\u0131n\u0131 da\u011f\u0131t\u0131r.<\/p>\n<p>    Komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, <code>redis-trib.rb<\/code> size k\u00fcme plan\u0131n\u0131 g\u00f6sterecek ve onay isteyecektir. <code>yes<\/code> yazarak onaylay\u0131n.<\/p>\n<p>    Ba\u015far\u0131l\u0131 bir kurulumun ard\u0131ndan, a\u015fa\u011f\u0131daki gibi bir \u00e7\u0131kt\u0131 g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-\">>>> Creating cluster\n    >>> Performing hash slots allocation on 6 nodes...\n    ...\n    [OK] All 16384 slots covered.<\/code><\/pre>\n<p>3.  <strong>K\u00fcme Durumunu Kontrol Etme:<\/strong><br \/>\n    Herhangi bir k\u00fcme d\u00fc\u011f\u00fcm\u00fcne ba\u011flanarak k\u00fcmenin durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">redis-cli -c -p 6379 cluster info\n    redis-cli -c -p 6379 cluster nodes<\/code><\/pre>\n<p>    <code>cluster info<\/code> \u00e7\u0131kt\u0131s\u0131nda <code>cluster_state:ok<\/code> g\u00f6rmelisiniz. <code>cluster nodes<\/code> \u00e7\u0131kt\u0131s\u0131 ise k\u00fcmedeki t\u00fcm d\u00fc\u011f\u00fcmleri, onlar\u0131n rollerini (master\/slave), IP adreslerini ve slot da\u011f\u0131l\u0131mlar\u0131n\u0131 g\u00f6sterecektir.<\/p>\n<p>    Tebrikler! Redis K\u00fcmeniz ba\u015far\u0131yla yap\u0131land\u0131r\u0131ld\u0131.<\/p>\n<h3>K\u00fcme Y\u00f6netimi ve Bak\u0131m<\/h3>\n<p>Redis K\u00fcmesi olu\u015fturulduktan sonra, zaman zaman d\u00fc\u011f\u00fcm ekleme, \u00e7\u0131karma veya slotlar\u0131 yeniden da\u011f\u0131tma gibi y\u00f6netim g\u00f6revlerini yerine getirmeniz gerekebilir.<\/p>\n<h4>D\u00fc\u011f\u00fcm Ekleme (Adding a Node)<\/h4>\n<p>K\u00fcmenize yeni bir ana d\u00fc\u011f\u00fcm veya kopya d\u00fc\u011f\u00fcm eklemek i\u00e7in <code>redis-trib.rb add-node<\/code> komutunu kullan\u0131r\u0131z.<\/p>\n<p>1.  <strong>Yeni Redis D\u00fc\u011f\u00fcm\u00fcn\u00fc Haz\u0131rlama:<\/strong><br \/>\n    Yeni bir sunucuda Redis&#8217;i kurun ve yukar\u0131daki ad\u0131mlar\u0131 takip ederek bir Redis \u00f6rne\u011fini yap\u0131land\u0131r\u0131n ve ba\u015flat\u0131n. \u00d6rne\u011fin, <code>192.168.1.107:6379<\/code>.<\/p>\n<p>2.  <strong>Yeni Bir Ana D\u00fc\u011f\u00fcm Ekleme:<\/strong><br \/>\n    Yeni d\u00fc\u011f\u00fcm\u00fc mevcut k\u00fcmeye ana d\u00fc\u011f\u00fcm olarak eklemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb add-node 192.168.1.107:6379 192.168.1.101:6379<\/code><\/pre>\n<p>    Bu komut, <code>192.168.1.107:6379<\/code> d\u00fc\u011f\u00fcm\u00fcn\u00fc k\u00fcmeye ekler. Ancak hen\u00fcz slot atanmad\u0131\u011f\u0131 i\u00e7in bo\u015f bir ana d\u00fc\u011f\u00fcm olacakt\u0131r. Slotlar\u0131 bu yeni d\u00fc\u011f\u00fcme ta\u015f\u0131mak i\u00e7in yeniden da\u011f\u0131t\u0131m (resharding) yapman\u0131z gerekir.<\/p>\n<p>3.  <strong>Yeni Bir Kopya D\u00fc\u011f\u00fcm Ekleme:<\/strong><br \/>\n    Yeni d\u00fc\u011f\u00fcm\u00fc mevcut bir ana d\u00fc\u011f\u00fcm\u00fcn kopyas\u0131 olarak eklemek i\u00e7in <code>--slave<\/code> ve <code>--master-id<\/code> parametrelerini kullan\u0131n. Ana d\u00fc\u011f\u00fcm ID&#8217;sini <code>cluster nodes<\/code> \u00e7\u0131kt\u0131s\u0131ndan alabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb add-node --slave --master-id <master_node_id> 192.168.1.107:6379 192.168.1.101:6379<\/code><\/pre>\n<p>    E\u011fer <code>--master-id<\/code> belirtmezseniz, <code>redis-trib.rb<\/code> rastgele bir ana d\u00fc\u011f\u00fcme kopya olarak atayacakt\u0131r.<\/p>\n<h4>Slotlar\u0131 Yeniden Da\u011f\u0131tma (Resharding)<\/h4>\n<p>Yeni bir ana d\u00fc\u011f\u00fcm ekledi\u011finizde veya slot da\u011f\u0131l\u0131m\u0131n\u0131 de\u011fi\u015ftirmek istedi\u011finizde yeniden da\u011f\u0131t\u0131m yapman\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb reshard 192.168.1.101:6379<\/code><\/pre>\n<p>Bu komut etkile\u015fimli olacakt\u0131r:<br \/>\n*   Ka\u00e7 slot ta\u015f\u0131mak istedi\u011finizi sorar.<br \/>\n*   Hedef d\u00fc\u011f\u00fcm\u00fcn ID&#8217;sini (slotlar\u0131n ta\u015f\u0131naca\u011f\u0131 d\u00fc\u011f\u00fcm) sorar.<br \/>\n*   Kaynak d\u00fc\u011f\u00fcmlerin ID&#8217;lerini (slotlar\u0131n al\u0131naca\u011f\u0131 d\u00fc\u011f\u00fcmler) sorar. <code>all<\/code> yazarak t\u00fcm ana d\u00fc\u011f\u00fcmlerden slotlar\u0131 alabilirsiniz.<br \/>\n*   Onay ister.<\/p>\n<h4>D\u00fc\u011f\u00fcm Silme (Removing a Node)<\/h4>\n<p>Bir d\u00fc\u011f\u00fcm\u00fc k\u00fcmeden \u00e7\u0131karmak i\u00e7in <code>redis-trib.rb del-node<\/code> komutunu kullan\u0131r\u0131z.<\/p>\n<p>1.  <strong>Ana D\u00fc\u011f\u00fcm Silme:<\/strong><br \/>\n    E\u011fer silmek istedi\u011finiz d\u00fc\u011f\u00fcm bir ana d\u00fc\u011f\u00fcmse ve slotlar\u0131 varsa, \u00f6nce bu slotlar\u0131 ba\u015fka bir ana d\u00fc\u011f\u00fcme ta\u015f\u0131man\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb reshard --from <node_id_to_remove> --to <target_node_id> --slots <num_slots> 192.168.1.101:6379<\/code><\/pre>\n<p>    Slotlar ta\u015f\u0131nd\u0131ktan sonra d\u00fc\u011f\u00fcm\u00fc silebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb del-node 192.168.1.101:6379 <node_id_to_remove><\/code><\/pre>\n<p>2.  <strong>Kopya D\u00fc\u011f\u00fcm Silme:<\/strong><br \/>\n    Bir kopya d\u00fc\u011f\u00fcm\u00fc silmek daha basittir, \u00e7\u00fcnk\u00fc slotlar\u0131 yoktur.<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb del-node 192.168.1.101:6379 <replica_node_id_to_remove><\/code><\/pre>\n<p>    D\u00fc\u011f\u00fcm k\u00fcmeden silindikten sonra, o sunucudaki Redis servisini durdurmay\u0131 unutmay\u0131n: <code>sudo service redis_6379 stop<\/code> veya <code>sudo kill <redis_pid><\/code>.<\/p>\n<h4>Hata Durumlar\u0131 ve Kurtarma (Failovers and Recovery)<\/h4>\n<p>Redis K\u00fcmesi otomatik failover yetene\u011fine sahiptir. Bir ana d\u00fc\u011f\u00fcm eri\u015filemez hale geldi\u011finde, k\u00fcme onun kopyalar\u0131ndan birini otomatik olarak yeni ana d\u00fc\u011f\u00fcm olarak se\u00e7er.<\/p>\n<p>*   <strong>Otomatik Failover:<\/strong> Bir ana d\u00fc\u011f\u00fcm\u00fcn <code>cluster-node-timeout<\/code> s\u00fcresince eri\u015filemez olmas\u0131 durumunda, di\u011fer d\u00fc\u011f\u00fcmler taraf\u0131ndan &#8220;fail&#8221; olarak i\u015faretlenir. E\u011fer bu durum k\u00fcmedeki ana d\u00fc\u011f\u00fcmlerin \u00e7o\u011funlu\u011fu taraf\u0131ndan onaylan\u0131rsa, ana d\u00fc\u011f\u00fcm\u00fcn kopyalar\u0131ndan biri yeni ana d\u00fc\u011f\u00fcm olarak se\u00e7ilir ve k\u00fcme \u00e7al\u0131\u015fmaya devam eder.<br \/>\n*   <strong>Manuel Failover:<\/strong> Bir kopya d\u00fc\u011f\u00fcm\u00fcn iste\u011fe ba\u011fl\u0131 olarak ana d\u00fc\u011f\u00fcm rol\u00fcn\u00fc \u00fcstlenmesini sa\u011flamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">redis-cli -c -p <replica_port> cluster failover<\/code><\/pre>\n<p>*   <strong>K\u00fcme Tutars\u0131zl\u0131klar\u0131n\u0131 Giderme:<\/strong> Nadiren de olsa k\u00fcme yap\u0131land\u0131rmas\u0131nda tutars\u0131zl\u0131klar olu\u015fabilir (\u00f6rne\u011fin, iki ana d\u00fc\u011f\u00fcm ayn\u0131 slot aral\u0131\u011f\u0131na sahipse). Bu durumlar\u0131 d\u00fczeltmek i\u00e7in <code>redis-trib.rb fix<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">.\/redis-trib.rb fix 192.168.1.101:6379<\/code><\/pre>\n<h3>\u0130stemci Ba\u011flant\u0131s\u0131<\/h3>\n<p>Redis K\u00fcmesi&#8217;ne ba\u011flan\u0131rken, k\u00fcme fark\u0131nda (cluster-aware) olan bir Redis istemcisi kullanman\u0131z \u00f6nemlidir. Bu t\u00fcr istemciler, <code>MOVED<\/code> veya <code>ASK<\/code> y\u00f6nlendirme komutlar\u0131n\u0131 i\u015fleyebilir ve anahtarlar\u0131n do\u011fru d\u00fc\u011f\u00fcmlere y\u00f6nlendirilmesini sa\u011flar.<\/p>\n<p>*   <strong><code>redis-cli<\/code> ile Ba\u011flant\u0131:<\/strong> Redis&#8217;in kendi CLI arac\u0131 olan <code>redis-cli<\/code>, <code>-c<\/code> (cluster mode) parametresi ile k\u00fcme fark\u0131nda \u00e7al\u0131\u015fabilir:<\/p>\n<pre><code class=\"language-bash\">redis-cli -c -p 6379<\/code><\/pre>\n<p>    Bu modda, bir anahtar\u0131n yanl\u0131\u015f d\u00fc\u011f\u00fcmde olmas\u0131 durumunda <code>redis-cli<\/code> otomatik olarak do\u011fru d\u00fc\u011f\u00fcme y\u00f6nlendirilir.<\/p>\n<p>*   <strong>Programatik \u0130stemciler:<\/strong> \u00c7o\u011fu programlama dilinin Redis k\u00fct\u00fcphaneleri, Redis Cluster deste\u011fi sunar. \u00d6rne\u011fin, Python i\u00e7in <code>redis-py-cluster<\/code>, Node.js i\u00e7in <code>ioredis<\/code>, Java i\u00e7in <code>Jedis<\/code> gibi k\u00fct\u00fcphaneler mevcuttur. Bu k\u00fct\u00fcphaneleri kullan\u0131rken, k\u00fcmedeki bir veya daha fazla d\u00fc\u011f\u00fcm\u00fcn IP:Port bilgisini sa\u011flayarak istemcinin k\u00fcmeyi ke\u015ffetmesini sa\u011flars\u0131n\u0131z.<\/p>\n<pre><code class=\"language-python\"># Python \u00f6rne\u011fi (redis-py-cluster)\n    from rediscluster import RedisCluster\n\n    startup_nodes = [{\"host\": \"192.168.1.101\", \"port\": \"6379\"}]\n    rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True)\n\n    rc.set(\"mykey\", \"myvalue\")\n    print(rc.get(\"mykey\"))<\/code><\/pre>\n<h3>Performans ve G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Redis K\u00fcmesi&#8217;nin performans\u0131n\u0131 ve g\u00fcvenli\u011fini art\u0131rmak i\u00e7in baz\u0131 \u00f6nemli ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>Ayr\u0131 Sunucular:<\/strong> \u00dcretim ortam\u0131nda her Redis \u00f6rne\u011fini ayr\u0131 bir fiziksel veya sanal sunucuda \u00e7al\u0131\u015ft\u0131rmak en iyisidir. Bu, donan\u0131m ar\u0131zalar\u0131n\u0131n etkisini s\u0131n\u0131rlar.<br \/>\n*   <strong>A\u011f Gecikmesi:<\/strong> Redis K\u00fcmesi d\u00fc\u011f\u00fcmleri aras\u0131nda d\u00fc\u015f\u00fck a\u011f gecikmesi \u00e7ok \u00f6nemlidir. D\u00fc\u011f\u00fcmlerin co\u011frafi olarak yak\u0131n olmas\u0131n\u0131 sa\u011flay\u0131n.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131:<\/strong> Sadece gerekli portlar\u0131 (6379 ve 16379) a\u00e7\u0131n ve eri\u015fimi g\u00fcvenilir IP adresleriyle s\u0131n\u0131rlay\u0131n.<br \/>\n*   <strong>Kimlik Do\u011frulama:<\/strong> <code>requirepass<\/code> ve <code>masterauth<\/code> ayarlar\u0131n\u0131 kullanarak Redis&#8217;e eri\u015fimi \u015fifreyle koruyun.<br \/>\n*   <strong>Bellek Y\u00f6netimi:<\/strong> <code>maxmemory<\/code> ayar\u0131n\u0131 yaparak her Redis \u00f6rne\u011finin kullanabilece\u011fi bellek miktar\u0131n\u0131 s\u0131n\u0131rlay\u0131n ve <code>maxmemory-policy<\/code> ile bellek doldu\u011funda hangi anahtarlar\u0131n at\u0131laca\u011f\u0131n\u0131 belirleyin.<br \/>\n*   <strong>Veri Kal\u0131c\u0131l\u0131\u011f\u0131:<\/strong> <code>appendonly yes<\/code> (AOF) ve\/veya RDB snapshot&#8217;lar\u0131 kullanarak veri kayb\u0131n\u0131 \u00f6nleyin. AOF, veri kayb\u0131n\u0131 minimize etmek i\u00e7in genellikle tercih edilir.<br \/>\n*   <strong>Yedekleme:<\/strong> AOF ve RDB dosyalar\u0131n\u0131 d\u00fczenli olarak yedekleyin.<br \/>\n*   <strong>\u0130zleme:<\/strong> Redis d\u00fc\u011f\u00fcmlerini ve k\u00fcme durumunu s\u00fcrekli izlemek i\u00e7in Prometheus, Grafana veya Redis&#8217;in kendi <code>INFO<\/code> komutlar\u0131n\u0131 kullan\u0131n.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular ve Sorun Giderme<\/h3>\n<p>*   <strong><code>redis-trib.rb<\/code> bulunam\u0131yor hatas\u0131:<\/strong> <code>redis-trib.rb<\/code> beti\u011fi genellikle Redis kaynak kodunun <code>src<\/code> dizininde bulunur. Komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z dizinden do\u011fru yolu belirtti\u011finizden veya <code>PATH<\/code> de\u011fi\u015fkeninize ekledi\u011finizden emin olun.<br \/>\n*   <strong>&#8220;All nodes are not in the same cluster&#8221; veya &#8220;Waiting for the cluster to join&#8221; hatas\u0131:<\/strong><br \/>\n    *   T\u00fcm Redis d\u00fc\u011f\u00fcmlerinin ba\u015flat\u0131ld\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <code>redis.conf<\/code> dosyas\u0131ndaki <code>bind<\/code> ayar\u0131n\u0131n do\u011fru IP adresini g\u00f6sterdi\u011finden ve <code>127.0.0.1<\/code> olmad\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   G\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 kontrol edin. 6379 ve 16379 portlar\u0131n\u0131n t\u00fcm d\u00fc\u011f\u00fcmler aras\u0131nda a\u00e7\u0131k oldu\u011fundan emin olun.<br \/>\n    *   Her d\u00fc\u011f\u00fcm\u00fcn <code>cluster-enabled yes<\/code> olarak ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong><code>redis-cli -c<\/code> ile ba\u011flanam\u0131yorum:<\/strong><br \/>\n    *   Redis sunucusunun \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   Do\u011fru port numaras\u0131n\u0131 kulland\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n    *   <code>redis-cli -c -h <ip_address> -p <port><\/code> \u015feklinde deneyin.<br \/>\n*   <strong>Verilerim k\u00fcmede g\u00f6r\u00fcnm\u00fcyor:<\/strong><br \/>\n    *   K\u00fcme fark\u0131nda bir istemci kullan\u0131yor musunuz? <code>redis-cli -c<\/code> gibi.<br \/>\n    *   <code>cluster nodes<\/code> \u00e7\u0131kt\u0131s\u0131nda t\u00fcm slotlar\u0131n ana d\u00fc\u011f\u00fcmlere da\u011f\u0131t\u0131ld\u0131\u011f\u0131ndan ve <code>cluster_state:ok<\/code> oldu\u011fundan emin olun.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Redis K\u00fcmesi, y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir uygulamalar geli\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcmd\u00fcr. Bu rehberde, Ubuntu 14.04 \u00fczerinde Redis K\u00fcmesi&#8217;nin temel yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131, mimarisini, kurulumunu, y\u00f6netimini ve bak\u0131m\u0131n\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde ele ald\u0131k. Do\u011fru yap\u0131land\u0131rma ve d\u00fczenli bak\u0131m ile Redis K\u00fcmesi, uygulaman\u0131z\u0131n veri depolama ihtiya\u00e7lar\u0131n\u0131 g\u00fcvenilir ve verimli bir \u015fekilde kar\u015f\u0131layacakt\u0131r.<\/p>\n<p>Her ne kadar Ubuntu 14.04 art\u0131k uzun s\u00fcreli destek almasa da, bu ad\u0131mlar Redis K\u00fcmesi&#8217;nin temel prensiplerini ve yap\u0131land\u0131rma mant\u0131\u011f\u0131n\u0131 anlamak i\u00e7in ge\u00e7erlili\u011fini korumaktad\u0131r. Modern i\u015fletim sistemlerinde de benzer ad\u0131mlar izlenecektir, ancak paket y\u00f6netimi ve sistem hizmeti yap\u0131land\u0131rmalar\u0131 (<code>systemd<\/code> gibi) farkl\u0131l\u0131k g\u00f6sterebilir. K\u00fcme ortam\u0131n\u0131z\u0131 izlemeyi, d\u00fczenli yedeklemeler almay\u0131 ve performans optimizasyonlar\u0131n\u0131 uygulamay\u0131 unutmay\u0131n.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi\nRedis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Genelli","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-30812","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi Redis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Genelli\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-02T07:41:15+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi\",\"datePublished\":\"2025-10-02T07:41:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/\"},\"wordCount\":2897,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/\",\"name\":\"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-02T07:41:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi","og_description":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi Redis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Genelli","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-02T07:41:15+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi","datePublished":"2025-10-02T07:41:15+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/"},"wordCount":2897,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/","name":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-02T07:41:15+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-redis-kumesi-redis-cluster-yapilandirma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 14.04 \u00dczerinde Redis K\u00fcmesi (Redis Cluster) Yap\u0131land\u0131rma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30812"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30812\/revisions"}],"predecessor-version":[{"id":30813,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30812\/revisions\/30813"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}