{"id":40148,"date":"2026-02-24T20:24:11","date_gmt":"2026-02-24T17:24:11","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/"},"modified":"2026-02-24T20:24:11","modified_gmt":"2026-02-24T17:24:11","slug":"redis-nedir-ve-neden-kullanmalisiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/","title":{"rendered":"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?"},"content":{"rendered":"<p><title>Redis CentOS Kurulumu ve G\u00fcvenli\u011fi: Ad\u0131m Ad\u0131m Rehber<\/title><br \/>\n<body><\/p>\n<p>Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek zamanl\u0131 analiz yetenekleri kazanmak m\u0131 istiyorsunuz? CentOS sunucunuzda Redis&#8217;i kurmak ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131rmak, bu hedeflere ula\u015fman\u0131z i\u00e7in kritik bir ad\u0131md\u0131r. Bu kapsaml\u0131 rehberde, Redis&#8217;in temel \u00f6zelliklerinden ba\u015flayarak, CentOS \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla nas\u0131l korunaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. B\u00f6ylece, verilerinizin hem h\u0131zl\u0131 hem de g\u00fcvende oldu\u011fundan emin olabilirsiniz.<\/p>\n<h2>Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?<\/h2>\n<p>Modern uygulama geli\u015ftirme s\u00fcre\u00e7lerinde veri depolama ve eri\u015fim h\u0131z\u0131n\u0131n \u00f6nemi yads\u0131namaz. \u0130\u015fte tam da bu noktada, &#8220;Remote Dictionary Server&#8221; kelimelerinin k\u0131saltmas\u0131 olan Redis devreye girer. Redis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 sunucusudur. Genellikle bir \u00f6nbellekleme (caching) sistemi olarak kullan\u0131lsa da, sadece bir \u00f6nbellek olmaktan \u00e7ok daha fazlas\u0131d\u0131r. Anahtar-de\u011fer (key-value) prensibiyle \u00e7al\u0131\u015f\u0131r ve stringler, hashler, listeler, setler, s\u0131ral\u0131 setler gibi zengin veri yap\u0131lar\u0131n\u0131 destekler. Bu esneklik, Redis&#8217;i \u00e7e\u015fitli kullan\u0131m senaryolar\u0131 i\u00e7in ideal bir \u00e7\u00f6z\u00fcm haline getirir.<\/p>\n<p>Peki, Redis&#8217;i neden kullanmal\u0131s\u0131n\u0131z? En ba\u015fta, h\u0131z\u0131 tart\u0131\u015f\u0131lmazd\u0131r. Verileri do\u011frudan RAM \u00fczerinde tutmas\u0131 sayesinde, geleneksel disk tabanl\u0131 veritabanlar\u0131na k\u0131yasla milisaniyeler i\u00e7inde yan\u0131t verebilir. Bu durum, \u00f6zellikle y\u00fcksek trafikli web uygulamalar\u0131, ger\u00e7ek zamanl\u0131 oyunlar veya finansal platformlar gibi performans\u0131n kritik oldu\u011fu yerlerde b\u00fcy\u00fck bir avantaj sa\u011flar. \u00d6rne\u011fin, bir e-ticaret sitesinde \u00fcr\u00fcn kataloglar\u0131n\u0131 veya kullan\u0131c\u0131 oturum bilgilerini Redis&#8217;te saklayarak sayfa y\u00fckleme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcrebilirsiniz. Kullan\u0131c\u0131 deneyimi iyile\u015fir, sunucu y\u00fck\u00fc azal\u0131r ve sonu\u00e7 olarak uygulaman\u0131z daha \u00f6l\u00e7eklenebilir hale gelir.<\/p>\n<p>Redis&#8217;in sundu\u011fu di\u011fer \u00f6nemli faydalar aras\u0131nda atomik i\u015flemler, yay\u0131nlama\/abone olma (publish\/subscribe) mesajla\u015fma yetenekleri ve kal\u0131c\u0131l\u0131k (persistence) se\u00e7enekleri bulunur. Atomik i\u015flemler, birden fazla komutun tek bir i\u015flem olarak y\u00fcr\u00fct\u00fclmesini sa\u011flayarak veri tutarl\u0131l\u0131\u011f\u0131n\u0131 garantiler. Yay\u0131nlama\/abone olma mekanizmas\u0131, ger\u00e7ek zamanl\u0131 sohbet uygulamalar\u0131 veya bildirim sistemleri geli\u015ftirmek i\u00e7in m\u00fckemmel bir temel sunar. Kal\u0131c\u0131l\u0131k \u00f6zellikleri ise, Redis&#8217;in RAM&#8217;de tuttu\u011fu verilerin sunucu yeniden ba\u015flat\u0131lsa bile kaybolmamas\u0131n\u0131 sa\u011flar; bu da hem veri g\u00fcvenli\u011fi hem de sistem s\u00fcreklili\u011fi a\u00e7\u0131s\u0131ndan hayati \u00f6neme sahiptir. Bu sayede, Redis sadece ge\u00e7ici veriler i\u00e7in de\u011fil, ayn\u0131 zamanda kritik i\u015f verileri i\u00e7in de g\u00fcvenilir bir depolama \u00e7\u00f6z\u00fcm\u00fc olarak konumland\u0131r\u0131labilir. K\u0131sacas\u0131, Redis, uygulaman\u0131z\u0131n h\u0131z\u0131n\u0131, esnekli\u011fini ve g\u00fcvenilirli\u011fini art\u0131rmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 setidir.<\/p>\n<h2>CentOS \u00dczerinde Redis Kurulumu Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>CentOS sunucunuzda Redis&#8217;i kurmak, uygulaman\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak i\u00e7in ataca\u011f\u0131n\u0131z ilk ve en \u00f6nemli ad\u0131md\u0131r. Bu b\u00f6l\u00fcmde, Redis&#8217;i kaynak koddan derleyerek kurman\u0131n en g\u00fcvenli ve g\u00fcncel yolunu ad\u0131m ad\u0131m inceleyece\u011fiz. Kaynak koddan kurulum, size en yeni s\u00fcr\u00fcm\u00fc kullanma ve derleme se\u00e7enekleri \u00fczerinde daha fazla kontrol sahibi olma imkan\u0131 sunar. Ayr\u0131ca, bu y\u00f6ntem sayesinde Redis&#8217;in nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131na dair daha derin bir anlay\u0131\u015f geli\u015ftirebilirsiniz.<\/p>\n<h3>Gerekli Sistem G\u00fcncellemeleri ve Ba\u011f\u0131ml\u0131l\u0131klar\u0131n Kurulumu<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, CentOS sisteminizin g\u00fcncel oldu\u011fundan emin olmal\u0131y\u0131z. Bu, olas\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve yaz\u0131l\u0131m \u00e7ak\u0131\u015fmalar\u0131n\u0131 engeller. Terminalinizi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\nsudo yum update -y\nsudo yum upgrade -y\n    <\/code><\/pre>\n<p>Bu komutlar, sistemdeki t\u00fcm paketleri en son s\u00fcr\u00fcmlerine g\u00fcncelleyecektir. G\u00fcncelleme i\u015flemi tamamland\u0131ktan sonra, Redis&#8217;i kaynak koddan derlemek i\u00e7in baz\u0131 geli\u015ftirme ara\u00e7lar\u0131na ve k\u00fct\u00fcphanelerine ihtiyac\u0131m\u0131z olacak. Bu ba\u011f\u0131ml\u0131l\u0131klar genellikle &#8220;Development Tools&#8221; grubu alt\u0131nda bulunur ve GCC derleyicisi gibi temel ara\u00e7lar\u0131 i\u00e7erir:<\/p>\n<pre><code>\nsudo yum groupinstall \"Development Tools\" -y\nsudo yum install epel-release -y\nsudo yum install make gcc-c++ -y\n    <\/code><\/pre>\n<p><code>epel-release<\/code> paketi, ek paket depolar\u0131na eri\u015fim sa\u011flar ve baz\u0131 durumlarda Redis&#8217;in ihtiya\u00e7 duyabilece\u011fi ek ba\u011f\u0131ml\u0131l\u0131klar\u0131 bar\u0131nd\u0131rabilir. Bu ad\u0131mlar, Redis&#8217;i derlemek i\u00e7in gerekli t\u00fcm temel bile\u015fenlerin sisteminizde haz\u0131r olmas\u0131n\u0131 sa\u011flar. Bu sayede, derleme i\u015flemi s\u0131ras\u0131nda herhangi bir eksik ba\u011f\u0131ml\u0131l\u0131k hatas\u0131yla kar\u015f\u0131la\u015fma olas\u0131l\u0131\u011f\u0131n\u0131z d\u00fc\u015fer.<\/p>\n<h3>Redis Kaynak Kodunun \u0130ndirilmesi ve Derlenmesi<\/h3>\n<p>Ba\u011f\u0131ml\u0131l\u0131klar kurulduktan sonra, Redis&#8217;in en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc resmi web sitesinden indirebiliriz. Genellikle bu, <code>wget<\/code> komutuyla yap\u0131l\u0131r. En g\u00fcncel s\u00fcr\u00fcm\u00fc Redis&#8217;in resmi web sitesinden kontrol etmek her zaman iyi bir uygulamad\u0131r. Bu rehber i\u00e7in \u00f6rnek olarak 7.0.11 s\u00fcr\u00fcm\u00fcn\u00fc kullanaca\u011f\u0131z:<\/p>\n<pre><code>\ncd \/tmp\nwget https:\/\/download.redis.io\/releases\/redis-7.0.11.tar.gz\ntar xzf redis-7.0.11.tar.gz\ncd redis-7.0.11\n    <\/code><\/pre>\n<p>Yukar\u0131daki komutlar s\u0131ras\u0131yla ge\u00e7ici bir dizine gider, Redis kaynak kodunu indirir, s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f dosyay\u0131 a\u00e7ar ve a\u00e7\u0131lan dizine ge\u00e7i\u015f yapar. \u015eimdi, kaynak kodu derleme zaman\u0131. <code>make<\/code> komutu, derleme s\u00fcrecini ba\u015flat\u0131r. Bu i\u015flem, sisteminizin i\u015flem g\u00fcc\u00fcne ba\u011fl\u0131 olarak birka\u00e7 dakika s\u00fcrebilir:<\/p>\n<pre><code>\nmake\n    <\/code><\/pre>\n<p>Derleme i\u015flemi ba\u015far\u0131yla tamamland\u0131\u011f\u0131nda, terminalde herhangi bir hata mesaj\u0131 g\u00f6rmemeniz gerekir. Derleme sonras\u0131, Redis ikili dosyalar\u0131n\u0131 sisteminize y\u00fcklemek i\u00e7in <code>make install<\/code> komutunu kullanaca\u011f\u0131z. Bu komut, Redis \u00e7al\u0131\u015ft\u0131r\u0131labilir dosyalar\u0131n\u0131 (<code>redis-server<\/code>, <code>redis-cli<\/code> vb.) sistemin genel y\u00fcr\u00fct\u00fclebilir dizinlerine (genellikle <code>\/usr\/local\/bin<\/code>) kopyalar:<\/p>\n<pre><code>\nsudo make install\n    <\/code><\/pre>\n<p>Bu ad\u0131mlarla Redis&#8217;in temel kurulumunu tamamlam\u0131\u015f olursunuz. Art\u0131k Redis sunucusunu ve istemcisini kullanmaya haz\u0131rs\u0131n\u0131z. Ancak, daha g\u00fcvenli ve y\u00f6netilebilir bir kullan\u0131m i\u00e7in Redis&#8217;i bir sistem servisi olarak yap\u0131land\u0131rmam\u0131z ve baz\u0131 g\u00fcvenlik \u00f6nlemleri almam\u0131z gerekecek.<\/p>\n<h3>Redis&#8217;i Bir Sistem Servisi Olarak Yap\u0131land\u0131rma<\/h3>\n<p>Redis&#8217;i manuel olarak ba\u015flatmak yerine, sistem ba\u015flang\u0131c\u0131nda otomatik olarak \u00e7al\u0131\u015facak ve kolayca y\u00f6netilebilecek bir systemd servisi olarak yap\u0131land\u0131rmak \u00e7ok daha pratiktir. Bu, sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda Redis&#8217;in otomatik olarak devreye girmesini ve <code>systemctl<\/code> komutlar\u0131yla kolayca durdurulup ba\u015flat\u0131labilmesini sa\u011flar. \u0130lk olarak, Redis i\u00e7in gerekli dizinleri olu\u015ftural\u0131m ve yap\u0131land\u0131rma dosyas\u0131n\u0131 kopyalayal\u0131m:<\/p>\n<pre><code>\nsudo mkdir \/etc\/redis\nsudo cp \/tmp\/redis-7.0.11\/redis.conf \/etc\/redis\/\nsudo mkdir \/var\/lib\/redis\n    <\/code><\/pre>\n<p>\u015eimdi, <code>redis.conf<\/code> dosyas\u0131nda baz\u0131 de\u011fi\u015fiklikler yapmam\u0131z gerekiyor. Bu dosya, Redis sunucusunun nas\u0131l davranaca\u011f\u0131n\u0131 belirleyen ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. Bir metin d\u00fczenleyici ile (\u00f6rne\u011fin <code>vi<\/code> veya <code>nano<\/code>) dosyay\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>\nsudo vi \/etc\/redis\/redis.conf\n    <\/code><\/pre>\n<p>Dosya i\u00e7inde a\u015fa\u011f\u0131daki de\u011fi\u015fiklikleri yap\u0131n:<\/p>\n<ul>\n<li><code>daemonize no<\/code> sat\u0131r\u0131n\u0131 bulun ve <code>daemonize yes<\/code> olarak de\u011fi\u015ftirin. Bu, Redis&#8217;in arka planda bir daemon olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>pidfile \/var\/run\/redis_6379.pid<\/code> sat\u0131r\u0131n\u0131 bulun ve <code>pidfile \/var\/run\/redis.pid<\/code> olarak de\u011fi\u015ftirin. Bu, PID dosyas\u0131n\u0131n standart bir konumda olmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>logfile \"\"<\/code> sat\u0131r\u0131n\u0131 bulun ve <code>logfile \"\/var\/log\/redis\/redis.log\"<\/code> olarak de\u011fi\u015ftirin. G\u00fcnl\u00fck dosyalar\u0131n\u0131n belirli bir yerde toplanmas\u0131, sorun giderme a\u00e7\u0131s\u0131ndan \u00f6nemlidir. (Bu dizini daha sonra olu\u015fturaca\u011f\u0131z.)<\/li>\n<li><code>dir .\/<\/code> sat\u0131r\u0131n\u0131 bulun ve <code>dir \/var\/lib\/redis<\/code> olarak de\u011fi\u015ftirin. Bu, Redis&#8217;in kal\u0131c\u0131l\u0131k verilerini (RDB\/AOF) depolayaca\u011f\u0131 dizini belirtir.<\/li>\n<\/ul>\n<p>De\u011fi\u015fiklikleri kaydedip \u00e7\u0131kt\u0131ktan sonra, Redis i\u00e7in bir g\u00fcnl\u00fck dizini olu\u015ftural\u0131m ve sahiplik haklar\u0131n\u0131 ayarlayal\u0131m:<\/p>\n<pre><code>\nsudo mkdir \/var\/log\/redis\nsudo chown redis:redis \/var\/log\/redis\n    <\/code><\/pre>\n<p>\u015eimdi, Redis i\u00e7in bir systemd servis dosyas\u0131 olu\u015ftural\u0131m. Bu dosya, systemd&#8217;ye Redis&#8217;i nas\u0131l ba\u015flataca\u011f\u0131n\u0131, durduraca\u011f\u0131n\u0131 ve y\u00f6netece\u011fini s\u00f6yler:<\/p>\n<pre><code>\nsudo vi \/etc\/systemd\/system\/redis.service\n    <\/code><\/pre>\n<p>\u0130\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\n[Unit]\nDescription=Redis In-Memory Data Store\nAfter=network.target\n\n[Service]\nUser=redis\nGroup=redis\nExecStart=\/usr\/local\/bin\/redis-server \/etc\/redis\/redis.conf\nExecStop=\/usr\/local\/bin\/redis-cli shutdown\nRestart=always\nType=forking\nPIDFile=\/var\/run\/redis.pid\n\n[Install]\nWantedBy=multi-user.target\n    <\/code><\/pre>\n<p>Bu servis tan\u0131m\u0131nda, Redis&#8217;in <code>redis<\/code> kullan\u0131c\u0131s\u0131 alt\u0131nda \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirtiyoruz. Bu kullan\u0131c\u0131y\u0131 hen\u00fcz olu\u015fturmad\u0131k, bu y\u00fczden \u015fimdi olu\u015ftural\u0131m:<\/p>\n<pre><code>\nsudo adduser --system --no-create-home redis\nsudo chown redis:redis \/var\/lib\/redis\n    <\/code><\/pre>\n<p>Son olarak, systemd yap\u0131land\u0131rmas\u0131n\u0131 yeniden y\u00fckleyin, Redis servisini etkinle\u015ftirin ve ba\u015flat\u0131n:<\/p>\n<pre><code>\nsudo systemctl daemon-reload\nsudo systemctl enable redis\nsudo systemctl start redis\n    <\/code><\/pre>\n<p>Redis&#8217;in durumunu kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\nsudo systemctl status redis\n    <\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ibaresini g\u00f6rmelisiniz. Bu, Redis sunucunuzun ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir. Bu kapsaml\u0131 kurulum s\u00fcreci, Redis&#8217;i CentOS sunucunuzda sa\u011flam ve y\u00f6netilebilir bir \u015fekilde \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 sa\u011flar. Ancak, bir sonraki a\u015famada g\u00fcvenlik konusuna odaklanarak Redis kurulumunuzu daha da g\u00fc\u00e7lendirece\u011fiz.<\/p>\n<h2>Redis G\u00fcvenli\u011fini Art\u0131rmak \u0130\u00e7in Temel Ad\u0131mlar<\/h2>\n<p>Redis&#8217;in h\u0131z\u0131 ve esnekli\u011fi, onu cazip bir \u00e7\u00f6z\u00fcm haline getirirken, varsay\u0131lan kurulumunun baz\u0131 g\u00fcvenlik riskleri ta\u015f\u0131d\u0131\u011f\u0131n\u0131 unutmamak \u00f6nemlidir. \u00d6zellikle internete a\u00e7\u0131k bir sunucuda Redis kullan\u0131yorsan\u0131z, g\u00fcvenlik \u00f6nlemleri almak hayati \u00f6neme sahiptir. Bu b\u00f6l\u00fcmde, Redis kurulumunuzu potansiyel tehditlere kar\u015f\u0131 korumak i\u00e7in uygulayabilece\u011finiz temel ad\u0131mlar\u0131 detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Bu ad\u0131mlar, yetkisiz eri\u015fimi engellemeyi ve verilerinizin gizlili\u011fini sa\u011flamay\u0131 ama\u00e7lar.<\/p>\n<h3>Firewall Yap\u0131land\u0131rmas\u0131: Sadece \u0130zin Verilen Ba\u011flant\u0131lar<\/h3>\n<p>CentOS \u00fczerinde \u00e7al\u0131\u015fan bir Redis sunucusunun g\u00fcvenli\u011fini sa\u011flaman\u0131n ilk ve en kritik ad\u0131m\u0131, bir g\u00fcvenlik duvar\u0131 (firewall) yap\u0131land\u0131rmakt\u0131r. G\u00fcvenlik duvar\u0131, sunucunuza gelen ve giden a\u011f trafi\u011fini kontrol ederek, yaln\u0131zca belirli portlara ve IP adreslerinden gelen ba\u011flant\u0131lara izin verir. Redis varsay\u0131lan olarak 6379 numaral\u0131 TCP portunu kullan\u0131r. Bu portun t\u00fcm d\u00fcnyaya a\u00e7\u0131k olmas\u0131, potansiyel sald\u0131rganlar i\u00e7in kolay bir hedef haline getirebilir.<\/p>\n<p>CentOS&#8217;ta <code>firewalld<\/code> servisi genellikle varsay\u0131lan olarak etkindir. \u0130lk olarak, <code>firewalld<\/code> durumunu kontrol edelim:<\/p>\n<pre><code>\nsudo systemctl status firewalld\n    <\/code><\/pre>\n<p>E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, ba\u015flat\u0131n ve etkinle\u015ftirin:<\/p>\n<pre><code>\nsudo systemctl start firewalld\nsudo systemctl enable firewalld\n    <\/code><\/pre>\n<p>\u015eimdi, Redis&#8217;in 6379 numaral\u0131 portuna sadece belirli IP adreslerinden (\u00f6rne\u011fin, uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sunucunun IP adresi) eri\u015fime izin verelim. E\u011fer uygulaman\u0131z ayn\u0131 sunucuda \u00e7al\u0131\u015f\u0131yorsa, sadece localhost&#8217;tan eri\u015fime izin vermek en g\u00fcvenli yakla\u015f\u0131md\u0131r. A\u015fa\u011f\u0131daki komut, 6379 portuna sadece 192.168.1.100 IP adresinden gelen ba\u011flant\u0131lara izin verir:<\/p>\n<pre><code>\nsudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family=\"ipv4\" source address=\"192.168.1.100\" port port=\"6379\" protocol=\"tcp\" accept'\nsudo firewall-cmd --reload\n    <\/code><\/pre>\n<p>E\u011fer uygulaman\u0131z Redis ile ayn\u0131 sunucuda \u00e7al\u0131\u015f\u0131yorsa ve d\u0131\u015far\u0131dan hi\u00e7bir eri\u015fime ihtiya\u00e7 duymuyorsan\u0131z, 6379 portunu tamamen kapatabilir veya sadece localhost&#8217;a a\u00e7abilirsiniz. En g\u00fcvenli se\u00e7enek, Redis&#8217;i sadece localhost&#8217;a ba\u011flamakt\u0131r (bir sonraki ad\u0131mda g\u00f6rece\u011fiz) ve bu durumda g\u00fcvenlik duvar\u0131nda harici eri\u015fime izin vermeye gerek kalmaz. Ancak, farkl\u0131 bir sunucudan eri\u015fim gerekiyorsa, yukar\u0131daki gibi belirli bir IP adresine izin vermek en iyisidir. A\u011f\u0131n\u0131zdaki t\u00fcm sunucular\u0131n Redis&#8217;e eri\u015fmesi gerekiyorsa, bir IP aral\u0131\u011f\u0131 da belirtebilirsiniz. G\u00fcvenlik duvar\u0131 kurallar\u0131 uyguland\u0131ktan sonra, <code>firewall-cmd --list-all<\/code> komutuyla kurallar\u0131 kontrol edebilirsiniz.<\/p>\n<h3>Redis&#8217;i Yaln\u0131zca Yerel Aray\u00fcze Ba\u011flama (Bind to Localhost)<\/h3>\n<p>Redis&#8217;in varsay\u0131lan yap\u0131land\u0131rmas\u0131nda, t\u00fcm a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lara izin verme e\u011filimi vard\u0131r. Bu, sunucunuzun IP adresi \u00fczerinden herkese a\u00e7\u0131k hale gelmesi anlam\u0131na gelir. Bu durumu d\u00fczeltmek ve Redis&#8217;in yaln\u0131zca yerel makineden (localhost) gelen ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flamak, g\u00fcvenli\u011fi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Bu sayede, d\u0131\u015far\u0131dan do\u011frudan Redis&#8217;e eri\u015fim engellenir ve sadece ayn\u0131 sunucuda \u00e7al\u0131\u015fan uygulamalar Redis ile ileti\u015fim kurabilir.<\/p>\n<p>Redis yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/redis\/redis.conf<\/code>) a\u00e7\u0131n:<\/p>\n<pre><code>\nsudo vi \/etc\/redis\/redis.conf\n    <\/code><\/pre>\n<p>Dosya i\u00e7inde <code>bind<\/code> y\u00f6nergesini bulun. Genellikle bu sat\u0131r\u0131n ba\u015f\u0131nda <code>#<\/code> i\u015fareti bulunur (yorum sat\u0131r\u0131 halindedir) veya <code>bind 127.0.0.1 -::1<\/code> \u015feklinde bir de\u011fer i\u00e7erir. E\u011fer sat\u0131r yorumlanm\u0131\u015fsa, yorum i\u015faretini kald\u0131r\u0131n ve a\u015fa\u011f\u0131daki gibi ayarlay\u0131n:<\/p>\n<pre><code>\nbind 127.0.0.1\n    <\/code><\/pre>\n<p>Bu ayar, Redis&#8217;in yaln\u0131zca IPv4 localhost aray\u00fcz\u00fcnden gelen ba\u011flant\u0131lar\u0131 kabul etmesini sa\u011flar. E\u011fer IPv6 deste\u011fi de istiyorsan\u0131z, <code>bind 127.0.0.1 ::1<\/code> \u015feklinde ayarlayabilirsiniz. De\u011fi\u015fiklikleri kaydedip \u00e7\u0131kt\u0131ktan sonra, Redis servisini yeniden ba\u015flatman\u0131z gerekir ki bu de\u011fi\u015fiklikler etkili olsun:<\/p>\n<pre><code>\nsudo systemctl restart redis\n    <\/code><\/pre>\n<p>Bu ad\u0131m\u0131 tamamlad\u0131ktan sonra, Redis sunucunuz art\u0131k yaln\u0131zca ayn\u0131 makine \u00fczerindeki uygulamalar taraf\u0131ndan eri\u015filebilir olacakt\u0131r. Bu, d\u0131\u015far\u0131dan gelen yetkisiz eri\u015fim denemelerine kar\u015f\u0131 \u00f6nemli bir koruma katman\u0131 sa\u011flar. Bu y\u00f6ntemin dezavantaj\u0131, e\u011fer uygulaman\u0131z farkl\u0131 bir sunucuda \u00e7al\u0131\u015f\u0131yorsa, Redis&#8217;e do\u011frudan ba\u011flanamayacak olmas\u0131d\u0131r. B\u00f6yle bir durumda, Redis&#8217;i sadece belirli bir \u00f6zel a\u011f aray\u00fcz\u00fcne ba\u011flaman\u0131z veya bir SSH t\u00fcneli\/VPN kullanman\u0131z gerekebilir.<\/p>\n<h3>Redis&#8217;e Parola Ekleme (Authentication)<\/h3>\n<p>Redis&#8217;i yaln\u0131zca localhost&#8217;a ba\u011flamak \u00f6nemli bir g\u00fcvenlik ad\u0131m\u0131d\u0131r, ancak bu, ayn\u0131 sunucuda \u00e7al\u0131\u015fan k\u00f6t\u00fc niyetli bir uygulaman\u0131n veya kullan\u0131c\u0131n\u0131n Redis&#8217;e eri\u015femeyece\u011fi anlam\u0131na gelmez. Bu nedenle, Redis&#8217;e bir parola (authentication) eklemek, ek bir g\u00fcvenlik katman\u0131 sa\u011flar. Bu sayede, Redis sunucusuna ba\u011flanmak isteyen her istemcinin do\u011fru parolay\u0131 sa\u011flamas\u0131 gerekir.<\/p>\n<p>Yine <code>\/etc\/redis\/redis.conf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>\nsudo vi \/etc\/redis\/redis.conf\n    <\/code><\/pre>\n<p>Dosya i\u00e7inde <code>requirepass<\/code> y\u00f6nergesini aray\u0131n. Bu sat\u0131r genellikle yorum sat\u0131r\u0131 halindedir. Yorum i\u015faretini kald\u0131r\u0131n ve g\u00fc\u00e7l\u00fc bir parola belirleyin:<\/p>\n<pre><code>\nrequirepass SizinCokGucluParolanizBuradaOlmali!\n    <\/code><\/pre>\n<p>Parolan\u0131z\u0131 kesinlikle tahmin edilmesi zor, uzun ve karma\u015f\u0131k karakterlerden olu\u015fturun. De\u011fi\u015fiklikleri kaydettikten sonra, Redis servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>\nsudo systemctl restart redis\n    <\/code><\/pre>\n<p>Art\u0131k Redis&#8217;e ba\u011flanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda, kimlik do\u011frulama yapman\u0131z gerekecektir. \u00d6rne\u011fin, <code>redis-cli<\/code> ile ba\u011flan\u0131rken:<\/p>\n<pre><code>\nredis-cli\nAUTH SizinCokGucluParolanizBuradaOlmali!\n    <\/code><\/pre>\n<p>Veya tek bir komutla:<\/p>\n<pre><code>\nredis-cli -a SizinCokGucluParolanizBuradaOlmali!\n    <\/code><\/pre>\n<p>Parola olmadan komut g\u00f6ndermeye \u00e7al\u0131\u015f\u0131rsan\u0131z, &#8220;NOAUTH Authentication required&#8221; hatas\u0131 al\u0131rs\u0131n\u0131z. Bu, parolan\u0131n ba\u015far\u0131yla uyguland\u0131\u011f\u0131n\u0131 g\u00f6sterir. Uygulamalar\u0131n\u0131z\u0131n Redis ile ba\u011flant\u0131 kurarken bu parolay\u0131 kullanacak \u015fekilde g\u00fcncellenmesi gerekti\u011fini unutmay\u0131n.<\/p>\n<h3>Redis&#8217;i Ayr\u0131cal\u0131ks\u0131z Bir Kullan\u0131c\u0131 ile \u00c7al\u0131\u015ft\u0131rma<\/h3>\n<p>G\u00fcvenlik prensiplerinden biri, her servisin m\u00fcmk\u00fcn olan en d\u00fc\u015f\u00fck ayr\u0131cal\u0131klarla \u00e7al\u0131\u015fmas\u0131 gerekti\u011fidir. Redis&#8217;i <code>root<\/code> kullan\u0131c\u0131s\u0131 yerine ayr\u0131cal\u0131ks\u0131z bir kullan\u0131c\u0131 (\u00f6rne\u011fin, daha \u00f6nce olu\u015fturdu\u011fumuz <code>redis<\/code> kullan\u0131c\u0131s\u0131) alt\u0131nda \u00e7al\u0131\u015ft\u0131rmak, olas\u0131 bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131 durumunda sistemin genel g\u00fcvenli\u011fine verilebilecek zarar\u0131 en aza indirir. E\u011fer Redis bir \u015fekilde tehlikeye at\u0131l\u0131rsa, <code>redis<\/code> kullan\u0131c\u0131s\u0131n\u0131n k\u0131s\u0131tl\u0131 yetkileri sayesinde sald\u0131rgan\u0131n t\u00fcm sisteme eri\u015fimi engellenir.<\/p>\n<p>Biz Redis&#8217;i systemd servisi olarak yap\u0131land\u0131r\u0131rken zaten bu ad\u0131m\u0131 atm\u0131\u015ft\u0131k. <code>\/etc\/systemd\/system\/redis.service<\/code> dosyas\u0131nda a\u015fa\u011f\u0131daki sat\u0131rlar, Redis&#8217;in <code>redis<\/code> kullan\u0131c\u0131s\u0131 ve grubu alt\u0131nda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar:<\/p>\n<pre><code>\nUser=redis\nGroup=redis\n    <\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, Redis&#8217;in yaln\u0131zca <code>redis<\/code> kullan\u0131c\u0131s\u0131n\u0131n sahip oldu\u011fu dizinlere (\u00f6rne\u011fin, <code>\/var\/lib\/redis<\/code> ve <code>\/var\/log\/redis<\/code>) yazma iznine sahip olmas\u0131n\u0131 sa\u011flar. Bu sayede, Redis&#8217;in k\u00f6t\u00fcye kullan\u0131lmas\u0131 durumunda, sistemin di\u011fer kritik alanlar\u0131na eri\u015fimi k\u0131s\u0131tlanm\u0131\u015f olur. Bu, &#8220;least privilege&#8221; (en az ayr\u0131cal\u0131k) prensibinin g\u00fczel bir \u00f6rne\u011fidir ve genel sistem g\u00fcvenli\u011finizi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Her zaman oldu\u011fu gibi, bu t\u00fcr yap\u0131land\u0131rma de\u011fi\u015fikliklerinden sonra Redis servisini yeniden ba\u015flatmak \u00f6nemlidir.<\/p>\n<h2>Geli\u015fmi\u015f Yap\u0131land\u0131rma ve \u0130pu\u00e7lar\u0131<\/h2>\n<p>Redis&#8217;in kurulumu ve temel g\u00fcvenli\u011fini sa\u011flad\u0131ktan sonra, performans\u0131 daha da optimize etmek ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc garantilemek i\u00e7in baz\u0131 geli\u015fmi\u015f yap\u0131land\u0131rma se\u00e7eneklerini g\u00f6zden ge\u00e7irebiliriz. Bu b\u00f6l\u00fcmde, Redis&#8217;in kal\u0131c\u0131l\u0131k mekanizmalar\u0131n\u0131, bellek y\u00f6netimini ve genel performans\u0131n\u0131 art\u0131rmaya y\u00f6nelik ipu\u00e7lar\u0131n\u0131 ele alaca\u011f\u0131z. Bu ayarlar, uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re Redis&#8217;i en verimli \u015fekilde kullanman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h3>Veri Kal\u0131c\u0131l\u0131\u011f\u0131 (Persistence): RDB ve AOF<\/h3>\n<p>Redis, verileri bellekte tuttu\u011fu i\u00e7in \u00e7ok h\u0131zl\u0131d\u0131r, ancak bellek ge\u00e7ici bir depolama alan\u0131d\u0131r. Sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda veya Redis s\u00fcreci \u00e7\u00f6kt\u00fc\u011f\u00fcnde bellek i\u00e7i veriler kaybolabilir. Bu riski ortadan kald\u0131rmak i\u00e7in Redis, iki ana kal\u0131c\u0131l\u0131k mekanizmas\u0131 sunar: RDB (Redis Database) ve AOF (Append Only File).<\/p>\n<h4>RDB (Redis Database)<\/h4>\n<p>RDB, belirli aral\u0131klarla veri k\u00fcmenizin anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc (snapshot) alarak diske kaydeder. Bu anl\u0131k g\u00f6r\u00fcnt\u00fcler, s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f ikili formatta <code>.rdb<\/code> uzant\u0131l\u0131 dosyalarda saklan\u0131r. RDB, felaket kurtarma senaryolar\u0131 i\u00e7in idealdir \u00e7\u00fcnk\u00fc geri y\u00fcklemesi \u00e7ok h\u0131zl\u0131d\u0131r. Bir RDB dosyas\u0131n\u0131 ba\u015fka bir Redis sunucusuna kopyalayarak kolayca veri geri y\u00fcklemesi yapabilirsiniz.<\/p>\n<p><code>redis.conf<\/code> dosyas\u0131nda RDB ayarlar\u0131 \u015f\u00f6yledir:<\/p>\n<pre><code>\nsave 900 1    # En az 1 anahtar 900 saniyede (15 dakika) de\u011fi\u015firse kaydet\nsave 300 10   # En az 10 anahtar 300 saniyede (5 dakika) de\u011fi\u015firse kaydet\nsave 60 10000 # En az 10000 anahtar 60 saniyede (1 dakika) de\u011fi\u015firse kaydet\n    <\/code><\/pre>\n<p>Bu sat\u0131rlar, Redis&#8217;in hangi ko\u015fullarda otomatik olarak bir RDB anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fc alaca\u011f\u0131n\u0131 belirler. Daha az veri kayb\u0131 riski istiyorsan\u0131z, <code>save<\/code> aral\u0131klar\u0131n\u0131 k\u0131saltabilirsiniz, ancak bu, disk G\/\u00c7 (I\/O) y\u00fck\u00fcn\u00fc art\u0131rabilir. RDB&#8217;nin dezavantaj\u0131, son kaydedilen anl\u0131k g\u00f6r\u00fcnt\u00fc ile \u00e7\u00f6kme an\u0131 aras\u0131ndaki verilerin kaybolma riskidir. Bu nedenle, tam veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in AOF ile birlikte kullan\u0131lmas\u0131 \u00f6nerilir.<\/p>\n<h4>AOF (Append Only File)<\/h4>\n<p>AOF, Redis&#8217;e gelen her yazma i\u015flemini (komutunu) bir g\u00fcnl\u00fck dosyas\u0131na (log file) kaydeder. Bu, bir veritaban\u0131 i\u015flem g\u00fcnl\u00fc\u011f\u00fc gibi \u00e7al\u0131\u015f\u0131r. Redis yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda, AOF dosyas\u0131ndaki komutlar\u0131 s\u0131rayla y\u00fcr\u00fcterek veri k\u00fcmesini yeniden olu\u015fturur. Bu y\u00f6ntem, RDB&#8217;ye g\u00f6re daha az veri kayb\u0131 riski ta\u015f\u0131r, \u00e7\u00fcnk\u00fc her komut kaydedilir. AOF dosyalar\u0131 genellikle RDB dosyalar\u0131ndan daha b\u00fcy\u00fckt\u00fcr ve geri y\u00fcklemesi daha uzun s\u00fcrebilir.<\/p>\n<p>AOF&#8217;yi etkinle\u015ftirmek i\u00e7in <code>redis.conf<\/code> dosyas\u0131nda a\u015fa\u011f\u0131daki sat\u0131r\u0131 bulun ve <code>yes<\/code> olarak de\u011fi\u015ftirin:<\/p>\n<pre><code>\nappendonly yes\n    <\/code><\/pre>\n<p>AOF senkronizasyon politikalar\u0131n\u0131 da yap\u0131land\u0131rabilirsiniz. Bu, komutlar\u0131n diske ne s\u0131kl\u0131kta yaz\u0131laca\u011f\u0131n\u0131 belirler:<\/p>\n<ul>\n<li><code>appendfsync always<\/code>: Her yazma komutunda diske senkronize et (en g\u00fcvenli, en yava\u015f).<\/li>\n<li><code>appendfsync everysec<\/code>: Her saniye diske senkronize et (varsay\u0131lan, iyi denge).<\/li>\n<li><code>appendfsync no<\/code>: \u0130\u015fletim sistemine b\u0131rak (en h\u0131zl\u0131, en az g\u00fcvenli).<\/li>\n<\/ul>\n<p>Genellikle <code>everysec<\/code> ayar\u0131 iyi bir denge sunar. Hem RDB hem de AOF&#8217;yi ayn\u0131 anda etkinle\u015ftirmek, en y\u00fcksek veri g\u00fcvenli\u011fini sa\u011flar. Redis, yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda AOF dosyas\u0131n\u0131 tercih eder \u00e7\u00fcnk\u00fc daha g\u00fcncel veriye sahiptir.<\/p>\n<h3>Bellek Y\u00f6netimi ve Performans \u0130pu\u00e7lar\u0131<\/h3>\n<p>Redis&#8217;in bellek i\u00e7i bir veritaban\u0131 olmas\u0131 nedeniyle, bellek y\u00f6netimi performans\u0131 i\u00e7in kritik \u00f6neme sahiptir. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bellek ayarlar\u0131, sistemin yava\u015flamas\u0131na veya \u00e7\u00f6kmesine neden olabilir.<\/p>\n<ul>\n<li><strong><code>maxmemory<\/code> Ayar\u0131:<\/strong> Bu ayar, Redis&#8217;in kullanabilece\u011fi maksimum bellek miktar\u0131n\u0131 belirler. Bu s\u0131n\u0131ra ula\u015f\u0131ld\u0131\u011f\u0131nda, Redis yap\u0131land\u0131r\u0131lm\u0131\u015f bir &#8220;eviction policy&#8221; (\u00e7\u0131karma politikas\u0131) kullanarak anahtarlar\u0131 silmeye ba\u015flar. \u00d6rne\u011fin, <code>maxmemory 2gb<\/code>.<\/li>\n<li><strong><code>maxmemory-policy<\/code>:<\/strong> Bellek s\u0131n\u0131r\u0131na ula\u015f\u0131ld\u0131\u011f\u0131nda hangi anahtarlar\u0131n silinece\u011fini belirler. Yayg\u0131n politikalar \u015funlard\u0131r:\n<ul>\n<li><code>noeviction<\/code>: Anahtar silme yok, yazma i\u015flemleri hata verir.<\/li>\n<li><code>allkeys-lru<\/code>: En az kullan\u0131lan anahtarlar\u0131 sil.<\/li>\n<li><code>volatile-lru<\/code>: Sadece TTL (ya\u015fam s\u00fcresi) ayarlanm\u0131\u015f anahtarlardan en az kullan\u0131lanlar\u0131 sil.<\/li>\n<li><code>allkeys-random<\/code>: Rastgele anahtarlar\u0131 sil.<\/li>\n<\/ul>\n<p>            Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re do\u011fru politikay\u0131 se\u00e7mek \u00f6nemlidir. \u00d6rne\u011fin, \u00f6nbellekleme i\u00e7in <code>allkeys-lru<\/code> veya <code>volatile-lru<\/code> idealdir.\n        <\/li>\n<li><strong>Sanal Bellek (Swap) Kullan\u0131m\u0131:<\/strong> Redis&#8217;in swap alan\u0131na d\u00fc\u015fmesi performans\u0131 ciddi \u015fekilde d\u00fc\u015f\u00fcr\u00fcr. Bu nedenle, sunucunuzda yeterli RAM oldu\u011fundan emin olun ve Redis&#8217;in asla swap kullanmas\u0131na izin vermeyin. Linux&#8217;ta <code>vm.overcommit_memory = 1<\/code> ayar\u0131n\u0131 yaparak bu durumu bir nebze \u00f6nleyebilirsiniz.<\/li>\n<li><strong>A\u011f Gecikmesi:<\/strong> Redis sunucusu ile uygulaman\u0131z aras\u0131ndaki a\u011f gecikmesini en aza indirmek i\u00e7in ikisini m\u00fcmk\u00fcn oldu\u011funca yak\u0131n tutun (tercihen ayn\u0131 veri merkezinde veya ayn\u0131 sunucuda).<\/li>\n<li><strong>Pipelining:<\/strong> Birden fazla Redis komutunu tek bir a\u011f iste\u011fiyle g\u00f6ndermek (pipelining), a\u011f gecikmesinin etkisini azaltarak performans\u0131 art\u0131rabilir. Uygulama kodunuzda Redis istemcisinin pipelining \u00f6zelli\u011fini kullanmay\u0131 de\u011ferlendirin.<\/li>\n<\/ul>\n<h3>Mobil Uyumluluk ve Duyarl\u0131 Tasar\u0131m \u0130\u00e7in HTML Yap\u0131s\u0131<\/h3>\n<p>Her ne kadar bu makale Redis kurulumuyla ilgili olsa da, i\u00e7eri\u011fin okunabilirli\u011fi ve eri\u015filebilirli\u011fi modern web standartlar\u0131na uygun olmal\u0131d\u0131r. Olu\u015fturdu\u011fumuz HTML yap\u0131s\u0131, mobil uyumluluk ve duyarl\u0131 tasar\u0131m prensiplerini destekleyecek \u015fekilde tasarlanm\u0131\u015ft\u0131r. \u00d6rne\u011fin, tablolar\u0131 olu\u015ftururken <code>&lt;table&gt;<\/code>, <code>&lt;thead&gt;<\/code>, <code>&lt;tbody&gt;<\/code>, <code>&lt;tr&gt;<\/code>, <code>&lt;th&gt;<\/code> ve <code>&lt;td&gt;<\/code> gibi semantik etiketler kullanmak, taray\u0131c\u0131lar\u0131n ve ekran okuyucular\u0131n i\u00e7eri\u011fi do\u011fru \u015fekilde yorumlamas\u0131na yard\u0131mc\u0131 olur. Ayr\u0131ca, bu yap\u0131land\u0131rma, CSS media query&#8217;leri kullan\u0131larak farkl\u0131 ekran boyutlar\u0131na kolayca adapte edilebilir.<\/p>\n<p>\u00d6rne\u011fin, bir tablonun mobil cihazlarda daha iyi g\u00f6r\u00fcnmesi i\u00e7in CSS&#8217;te a\u015fa\u011f\u0131daki gibi bir yap\u0131 kullan\u0131labilir:<\/p>\n<pre><code>\n\/* \u00d6rnek CSS Media Query *\/\n@media screen and (max-width: 600px) {\n  table, thead, tbody, th, td, tr {\n    display: block;\n  }\n  thead tr {\n    position: absolute;\n    top: -9999px;\n    left: -9999px;\n  }\n  tr { border: 1px solid #ccc; }\n  td {\n    border: none;\n    border-bottom: 1px solid #eee;\n    position: relative;\n    padding-left: 50%;\n  }\n  td:before {\n    position: absolute;\n    top: 6px;\n    left: 6px;\n    width: 45%;\n    padding-right: 10px;\n    white-space: nowrap;\n    content: attr(data-label); \/* data-label ile s\u00fctun ba\u015fl\u0131\u011f\u0131n\u0131 g\u00f6ster *\/\n  }\n}\n    <\/code><\/pre>\n<p>Bu CSS kodu, k\u00fc\u00e7\u00fck ekranlarda tablolar\u0131n dikey olarak y\u0131\u011f\u0131lmas\u0131n\u0131 sa\u011flayarak okunabilirli\u011fi art\u0131r\u0131r. HTML&#8217;deki her bir <code>&lt;td&gt;<\/code> etiketine <code>data-label<\/code> niteli\u011fi ekleyerek, mobil g\u00f6r\u00fcn\u00fcmde ilgili s\u00fctun ba\u015fl\u0131\u011f\u0131n\u0131 g\u00f6sterebiliriz. Kod bloklar\u0131 i\u00e7in de <code>&lt;pre&gt;&lt;code&gt;<\/code> etiketlerini kullanmak, kodun format\u0131n\u0131 korurken, metin rengi ve arka plan rengi gibi stil \u00f6zelliklerini d\u0131\u015f CSS dosyalar\u0131na b\u0131rakarak hem light hem de dark mode temalarda sorunsuz bir g\u00f6r\u00fcn\u00fcm sa\u011flar. Bu yakla\u015f\u0131mlar, i\u00e7eri\u011fin her t\u00fcrl\u00fc cihazda ve kullan\u0131c\u0131 tercihinde optimal bir deneyim sunmas\u0131na olanak tan\u0131r.<\/p>\n<h2>Vaka Analizi: Y\u00fcksek Trafikli Bir Web Uygulamas\u0131nda Redis Kullan\u0131m\u0131<\/h2>\n<p>Ger\u00e7ek d\u00fcnya senaryolar\u0131, teorik bilgilerin pratik uygulamalar\u0131n\u0131 anlamak i\u00e7in en iyi yoldur. Bir \u00f6rnek \u00fczerinden Redis&#8217;in y\u00fcksek trafikli bir web uygulamas\u0131nda nas\u0131l fark yaratt\u0131\u011f\u0131n\u0131 inceleyelim. Hayal edin ki, ayl\u0131k milyonlarca tekil ziyaret\u00e7iye sahip, dinamik i\u00e7erik sunan b\u00fcy\u00fck bir haber portal\u0131n\u0131z var. Bu portalda, kullan\u0131c\u0131 yorumlar\u0131, makale g\u00f6r\u00fcnt\u00fclenme say\u0131lar\u0131, pop\u00fcler haberler ve ki\u015fiselle\u015ftirilmi\u015f i\u00e7erik \u00f6nerileri gibi bir\u00e7ok dinamik bile\u015fen bulunuyor. Geleneksel bir ili\u015fkisel veritaban\u0131 (\u00f6rne\u011fin MySQL veya PostgreSQL) kullan\u0131ld\u0131\u011f\u0131nda, her sayfa y\u00fcklemesinde bu dinamik verilerin veritaban\u0131ndan \u00e7ekilmesi, sunucu \u00fczerinde ciddi bir y\u00fck olu\u015fturur ve sayfa y\u00fckleme s\u00fcrelerini uzat\u0131r.<\/p>\n<p>Bu senaryoda, Redis&#8217;i devreye sokarak performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabiliriz. \u0130\u015fte Redis&#8217;in bu haber portal\u0131nda oynayabilece\u011fi roller ve sa\u011flad\u0131\u011f\u0131 faydalar:<\/p>\n<ol>\n<li><strong>Sayfa ve B\u00f6l\u00fcm \u00d6nbellekleme (Caching):<\/strong>\n<ul>\n<li><strong>Problem:<\/strong> En pop\u00fcler haberler, kategori sayfalar\u0131 ve ana sayfa gibi s\u0131k eri\u015filen i\u00e7erikler, her istekte veritaban\u0131ndan \u00e7ekildi\u011finde veritaban\u0131 sunucusunu a\u015f\u0131r\u0131 y\u00fckler.<\/li>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu statik veya yar\u0131-statik i\u00e7erikler, belirli bir s\u00fcre (\u00f6rne\u011fin 5-10 dakika) Redis&#8217;te \u00f6nbelle\u011fe al\u0131n\u0131r. Bir kullan\u0131c\u0131 sayfay\u0131 istedi\u011finde, uygulama \u00f6nce Redis&#8217;e bakar. E\u011fer i\u00e7erik Redis&#8217;te varsa, do\u011frudan oradan al\u0131n\u0131r ve veritaban\u0131na hi\u00e7 gidilmez. Bu, veritaban\u0131 sorgu y\u00fck\u00fcn\u00fc %80&#8217;e kadar azaltabilir ve sayfa y\u00fckleme s\u00fcrelerini milisaniyeler seviyesine \u00e7ekebilir.<\/li>\n<li><strong>Redis Veri Yap\u0131s\u0131:<\/strong> Stringler (JSON format\u0131nda tam sayfa i\u00e7eri\u011fi), Hashler (makale detaylar\u0131).<\/li>\n<li><strong>Uygulama \u00d6rne\u011fi:<\/strong>\n<pre><code>\n\/\/ Python (Flask\/Django) \u00f6rne\u011fi\nimport redis\nimport json\n\nr = redis.StrictRedis(host='localhost', port=6379, db=0, password='SizinCokGucluParolanizBuradaOlmali!')\n\ndef get_article(article_id):\n    cache_key = f\"article:{article_id}\"\n    cached_data = r.get(cache_key)\n\n    if cached_data:\n        print(\"Makale \u00f6nbellekten \u00e7ekildi.\")\n        return json.loads(cached_data)\n    else:\n        print(\"Makale veritaban\u0131ndan \u00e7ekildi ve \u00f6nbelle\u011fe al\u0131nd\u0131.\")\n        # Veritaban\u0131ndan makaleyi \u00e7ekme sim\u00fclasyonu\n        article_data = {\"id\": article_id, \"title\": \"Redis ile Performans Art\u0131\u015f\u0131\", \"content\": \"...\"}\n        r.setex(cache_key, 300, json.dumps(article_data)) # 300 saniye (5 dakika) \u00f6nbellekte tut\n        return article_data\n\n# Kullan\u0131m\narticle = get_article(123)\nprint(article)\n                    <\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Kullan\u0131c\u0131 Oturum Y\u00f6netimi:<\/strong>\n<ul>\n<li><strong>Problem:<\/strong> Da\u011f\u0131t\u0131k bir web uygulamas\u0131 ortam\u0131nda (birden fazla web sunucusu), kullan\u0131c\u0131 oturum bilgilerini sunucular aras\u0131nda tutarl\u0131 bir \u015fekilde payla\u015fmak zor olabilir. Geleneksel olarak dosya tabanl\u0131 oturumlar veya veritaban\u0131 oturumlar\u0131 kullan\u0131l\u0131r, ancak bu yava\u015f olabilir.<\/li>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> Kullan\u0131c\u0131 oturumlar\u0131 Redis&#8217;te saklan\u0131r. Redis, da\u011f\u0131t\u0131k ortamda h\u0131zl\u0131 ve merkezi bir oturum depolama \u00e7\u00f6z\u00fcm\u00fc sunar. Bir kullan\u0131c\u0131 giri\u015f yapt\u0131\u011f\u0131nda, oturum bilgileri Redis&#8217;e kaydedilir ve uygulama sunucular\u0131 bu oturumlar\u0131 Redis&#8217;ten \u00e7ekebilir.<\/li>\n<li><strong>Redis Veri Yap\u0131s\u0131:<\/strong> Hashler (kullan\u0131c\u0131 ID, giri\u015f zaman\u0131, tercih ayarlar\u0131).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Ger\u00e7ek Zamanl\u0131 Saya\u00e7lar ve Lider Tablolar\u0131:<\/strong>\n<ul>\n<li><strong>Problem:<\/strong> Haber portal\u0131ndaki makale g\u00f6r\u00fcnt\u00fclenme say\u0131lar\u0131 veya kullan\u0131c\u0131 yorumlar\u0131n\u0131n be\u011fenilme say\u0131lar\u0131 gibi dinamik saya\u00e7lar, her art\u0131\u015fta veritaban\u0131na yaz\u0131ld\u0131\u011f\u0131nda b\u00fcy\u00fck bir y\u00fck olu\u015fturur.<\/li>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu saya\u00e7lar Redis&#8217;in atomik art\u0131rma (<code>INCR<\/code>) komutlar\u0131yla tutulur. \u00d6rne\u011fin, bir makale her g\u00f6r\u00fcnt\u00fclendi\u011finde, Redis&#8217;teki ilgili anahtar\u0131n de\u011feri bir art\u0131r\u0131l\u0131r. Bu i\u015flemler \u00e7ok h\u0131zl\u0131d\u0131r ve veritaban\u0131na y\u00fck bindirmez. Pop\u00fcler haberler i\u00e7in s\u0131ral\u0131 setler (Sorted Sets) kullan\u0131larak lider tablolar\u0131 olu\u015fturulabilir.<\/li>\n<li><strong>Redis Veri Yap\u0131s\u0131:<\/strong> Stringler (saya\u00e7lar i\u00e7in), Sorted Sets (lider tablolar\u0131 i\u00e7in).<\/li>\n<li><strong>Uygulama \u00d6rne\u011fi:<\/strong>\n<pre><code>\n\/\/ Python (Flask\/Django) \u00f6rne\u011fi\ndef increment_article_views(article_id):\n    view_key = f\"article:views:{article_id}\"\n    r.incr(view_key)\n    print(f\"Makale {article_id} g\u00f6r\u00fcnt\u00fclenme say\u0131s\u0131: {r.get(view_key).decode()}\")\n\ndef add_to_leaderboard(user_id, score):\n    r.zadd(\"leaderboard\", {f\"user:{user_id}\": score})\n    print(f\"Lider tablosu g\u00fcncellendi. {user_id}: {score}\")\n\nincrement_article_views(123)\nadd_to_leaderboard(1, 150)\nadd_to_leaderboard(2, 200)\nadd_to_leaderboard(3, 120)\nprint(\"En iyi 2 oyuncu:\", r.zrevrange(\"leaderboard\", 0, 1, withscores=True))\n                    <\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Bu vaka analizinde g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi, Redis&#8217;in do\u011fru kullan\u0131lmas\u0131, y\u00fcksek trafikli bir web uygulamas\u0131n\u0131n performans\u0131n\u0131, \u00f6l\u00e7eklenebilirli\u011fini ve kullan\u0131c\u0131 deneyimini k\u00f6kten de\u011fi\u015ftirebilir. Bellek i\u00e7i depolama, atomik i\u015flemler ve zengin veri yap\u0131lar\u0131 sayesinde, veritaban\u0131 \u00fczerindeki y\u00fck\u00fc azalt\u0131r, yan\u0131t s\u00fcrelerini k\u0131salt\u0131r ve geli\u015ftiricilere ger\u00e7ek zamanl\u0131 \u00f6zellikler ekleme esnekli\u011fi sunar. Ancak, bu faydalar\u0131 elde etmek i\u00e7in Redis&#8217;in do\u011fru bir \u015fekilde kurulmas\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla korunmas\u0131 gerekti\u011fini unutmamak gerekir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu rehber boyunca, Redis&#8217;in ne oldu\u011fundan, CentOS sunucunuzda nas\u0131l kurulaca\u011f\u0131na, temel g\u00fcvenlik \u00f6nlemlerinden geli\u015fmi\u015f yap\u0131land\u0131rma ipu\u00e7lar\u0131na kadar bir\u00e7ok konuyu ele ald\u0131k. Redis&#8217;in bellek i\u00e7i veri depolama yetenekleri sayesinde uygulamalar\u0131n\u0131za h\u0131z, esneklik ve \u00f6l\u00e7eklenebilirlik katabilece\u011fini g\u00f6rd\u00fck. G\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131, yerel aray\u00fcze ba\u011flama, g\u00fc\u00e7l\u00fc parola kullan\u0131m\u0131 ve ayr\u0131cal\u0131ks\u0131z bir kullan\u0131c\u0131 ile \u00e7al\u0131\u015ft\u0131rma gibi ad\u0131mlar, Redis kurulumunuzu potansiyel tehditlere kar\u015f\u0131 koruman\u0131n anahtar\u0131d\u0131r. Ayr\u0131ca, RDB ve AOF gibi kal\u0131c\u0131l\u0131k mekanizmalar\u0131n\u0131n veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc nas\u0131l sa\u011flad\u0131\u011f\u0131n\u0131 ve bellek y\u00f6netimi stratejilerinin performans\u0131 nas\u0131l etkiledi\u011fini inceledik. Y\u00fcksek trafikli bir haber portal\u0131 \u00f6rne\u011fi \u00fczerinden, Redis&#8217;in ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l somut faydalar sa\u011flad\u0131\u011f\u0131n\u0131 da g\u00f6zlemledik.<\/p>\n<p>Unutmay\u0131n, Redis&#8217;in g\u00fcc\u00fcnden tam anlam\u0131yla faydalanmak i\u00e7in sadece kurulum yapmak yeterli de\u011fildir; d\u00fczenli bak\u0131m, izleme ve g\u00fcvenlik g\u00fcncellemelerini takip etmek de ayn\u0131 derecede \u00f6nemlidir. Bu rehber, Redis yolculu\u011funuzda size sa\u011flam bir ba\u015flang\u0131\u00e7 noktas\u0131 sunmay\u0131 ama\u00e7lam\u0131\u015ft\u0131r. Uygulamalar\u0131n\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re Redis yap\u0131land\u0131rman\u0131z\u0131 s\u00fcrekli olarak optimize etmeye devam etmelisiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<dl>\n<dt>Redis&#8217;i neden kaynak koddan kurmal\u0131y\u0131m, paket y\u00f6neticisiyle kurmak daha kolay de\u011fil mi?<\/dt>\n<dd>Kaynak koddan kurulum, genellikle Redis&#8217;in en g\u00fcncel s\u00fcr\u00fcm\u00fcne eri\u015fmenizi sa\u011flar ve derleme se\u00e7enekleri \u00fczerinde daha fazla kontrol imkan\u0131 sunar. Bu, belirli optimizasyonlar veya deneysel \u00f6zellikler i\u00e7in faydal\u0131 olabilir. Paket y\u00f6neticisiyle kurulum daha kolayd\u0131r ancak genellikle daha eski veya daha az \u00f6zelle\u015ftirilebilir bir s\u00fcr\u00fcm\u00fc y\u00fckler. G\u00fcvenlik g\u00fcncellemeleri a\u00e7\u0131s\u0131ndan, kaynak koddan kurulumda manuel takip gerekirken, paket y\u00f6neticisi bu s\u00fcreci otomatikle\u015ftirir. Tercih, projenizin ihtiya\u00e7lar\u0131na ve kontrol seviyesi beklentilerinize ba\u011fl\u0131d\u0131r.<\/dd>\n<dt>Redis&#8217;i g\u00fcvenli hale getirmek i\u00e7in hangi ad\u0131mlar en \u00f6nemlidir?<\/dt>\n<dd>En \u00f6nemli ad\u0131mlar \u015funlard\u0131r:<\/p>\n<ol>\n<li><strong>G\u00fcvenlik Duvar\u0131 (Firewall) Kullan\u0131m\u0131:<\/strong> Redis portunu (varsay\u0131lan 6379) sadece g\u00fcvenilir IP adreslerinden eri\u015fime a\u00e7\u0131n veya tamamen kapat\u0131n.<\/li>\n<li><strong>Yerel Aray\u00fcze Ba\u011flama (Bind to Localhost):<\/strong> Redis&#8217;i sadece <code>127.0.0.1<\/code> adresine ba\u011flayarak d\u0131\u015far\u0131dan eri\u015fimi engelleyin.<\/li>\n<li><strong>Parola (Authentication) Kullan\u0131m\u0131:<\/strong> <code>requirepass<\/code> y\u00f6nergesi ile g\u00fc\u00e7l\u00fc bir parola belirleyin.<\/li>\n<li><strong>Ayr\u0131cal\u0131ks\u0131z Kullan\u0131c\u0131 ile \u00c7al\u0131\u015ft\u0131rma:<\/strong> Redis&#8217;i <code>root<\/code> yerine ayr\u0131cal\u0131ks\u0131z bir kullan\u0131c\u0131 (\u00f6rne\u011fin <code>redis<\/code>) alt\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131n.<\/li>\n<\/ol>\n<p>            Bu d\u00f6rt ad\u0131m, Redis kurulumunuzun temel g\u00fcvenli\u011fini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r.<\/dd>\n<dt>Redis&#8217;te veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in RDB ve AOF&#8217;yi birlikte mi kullanmal\u0131y\u0131m?<\/dt>\n<dd>Evet, en y\u00fcksek veri g\u00fcvenli\u011fi ve minimum veri kayb\u0131 riskini sa\u011flamak i\u00e7in hem RDB hem de AOF kal\u0131c\u0131l\u0131k mekanizmalar\u0131n\u0131 birlikte kullanman\u0131z \u00f6nerilir. RDB, anl\u0131k g\u00f6r\u00fcnt\u00fclerle h\u0131zl\u0131 geri y\u00fckleme sa\u011flarken, AOF her yazma i\u015flemini kaydederek daha ince taneli bir veri kurtarma imkan\u0131 sunar. Redis, yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda AOF dosyas\u0131n\u0131 tercih eder \u00e7\u00fcnk\u00fc daha g\u00fcncel veriye sahip olma potansiyeli daha y\u00fcksektir. Bu kombinasyon, hem performans hem de veri b\u00fct\u00fcnl\u00fc\u011f\u00fc a\u00e7\u0131s\u0131ndan en iyi dengeyi sunar.<\/dd>\n<dt>Redis&#8217;in performans\u0131n\u0131 izlemek i\u00e7in hangi ara\u00e7lar\u0131 kullanabilirim?<\/dt>\n<dd>Redis&#8217;in performans\u0131n\u0131 izlemek i\u00e7in birka\u00e7 farkl\u0131 ara\u00e7 ve y\u00f6ntem kullanabilirsiniz:<\/p>\n<ul>\n<li><strong><code>redis-cli info<\/code>:<\/strong> Redis sunucusunun anl\u0131k durumu, bellek kullan\u0131m\u0131, ba\u011flant\u0131 say\u0131s\u0131, kal\u0131c\u0131l\u0131k bilgileri gibi bir\u00e7ok metrik sa\u011flar.<\/li>\n<li><strong><code>redis-cli monitor<\/code>:<\/strong> Redis sunucusuna gelen t\u00fcm komutlar\u0131 ger\u00e7ek zamanl\u0131 olarak g\u00f6sterir (ancak \u00fcretim ortam\u0131nda dikkatli kullan\u0131lmal\u0131d\u0131r, performans etkisi olabilir).<\/li>\n<li><strong>Prometheus ve Grafana:<\/strong> Redis exporter kullanarak Redis metriklerini Prometheus&#8217;a toplayabilir ve Grafana ile g\u00f6rselle\u015ftirebilirsiniz. Bu, uzun vadeli izleme ve trend analizi i\u00e7in \u00e7ok g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/li>\n<li><strong>Sistem \u0130zleme Ara\u00e7lar\u0131:<\/strong> <code>top<\/code>, <code>htop<\/code>, <code>vmstat<\/code> gibi Linux ara\u00e7lar\u0131, Redis s\u00fcrecinin CPU ve bellek kullan\u0131m\u0131n\u0131 genel sistem ba\u011flam\u0131nda izlemenize yard\u0131mc\u0131 olur.<\/li>\n<\/ul>\n<p>            Bu ara\u00e7lar\u0131n bir kombinasyonunu kullanarak Redis sunucunuzun sa\u011fl\u0131\u011f\u0131n\u0131 ve performans\u0131n\u0131 kapsaml\u0131 bir \u015fekilde takip edebilirsiniz.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Redis CentOS Kurulumu ve G\u00fcvenli\u011fi: Ad\u0131m Ad\u0131m Rehber Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek&hellip;","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":[1404],"tags":[],"class_list":{"0":"post-40148","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-redis","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>Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?<\/title>\n<meta name=\"description\" content=\"Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek zamanl\u0131 analiz yetenekleri kazanmak m\u0131 istiyorsunuz? CentOS sunucunuzda Redis&#039;i kurmak ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131rmak, bu hedeflere ula\u015fman\u0131z i\u00e7in kritik bir ad\u0131md\u0131r. Bu kapsaml\u0131 rehberde, Redis&#039;in temel \u00f6zelliklerinden ba\u015flayarak, CentOS \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla nas\u0131l korunaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. B\u00f6ylece, verilerinizin hem h\u0131zl\u0131 hem de g\u00fcvende oldu\u011fundan emin olabilirsiniz.\" \/>\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\/redis-nedir-ve-neden-kullanmalisiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\" \/>\n<meta property=\"og:description\" content=\"Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek zamanl\u0131 analiz yetenekleri kazanmak m\u0131 istiyorsunuz? CentOS sunucunuzda Redis&#039;i kurmak ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131rmak, bu hedeflere ula\u015fman\u0131z i\u00e7in kritik bir ad\u0131md\u0131r. Bu kapsaml\u0131 rehberde, Redis&#039;in temel \u00f6zelliklerinden ba\u015flayarak, CentOS \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla nas\u0131l korunaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. B\u00f6ylece, verilerinizin hem h\u0131zl\u0131 hem de g\u00fcvende oldu\u011fundan emin olabilirsiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-24T17:24:11+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=\"27 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\",\"datePublished\":\"2026-02-24T17:24:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/\"},\"wordCount\":4805,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Redis\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/\",\"name\":\"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-24T17:24:11+00:00\",\"description\":\"Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek zamanl\u0131 analiz yetenekleri kazanmak m\u0131 istiyorsunuz? CentOS sunucunuzda Redis'i kurmak ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131rmak, bu hedeflere ula\u015fman\u0131z i\u00e7in kritik bir ad\u0131md\u0131r. Bu kapsaml\u0131 rehberde, Redis'in temel \u00f6zelliklerinden ba\u015flayarak, CentOS \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla nas\u0131l korunaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. B\u00f6ylece, verilerinizin hem h\u0131zl\u0131 hem de g\u00fcvende oldu\u011fundan emin olabilirsiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\"}]},{\"@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":"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","description":"Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek zamanl\u0131 analiz yetenekleri kazanmak m\u0131 istiyorsunuz? CentOS sunucunuzda Redis'i kurmak ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131rmak, bu hedeflere ula\u015fman\u0131z i\u00e7in kritik bir ad\u0131md\u0131r. Bu kapsaml\u0131 rehberde, Redis'in temel \u00f6zelliklerinden ba\u015flayarak, CentOS \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla nas\u0131l korunaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. B\u00f6ylece, verilerinizin hem h\u0131zl\u0131 hem de g\u00fcvende oldu\u011fundan emin olabilirsiniz.","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\/redis-nedir-ve-neden-kullanmalisiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","og_description":"Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek zamanl\u0131 analiz yetenekleri kazanmak m\u0131 istiyorsunuz? CentOS sunucunuzda Redis'i kurmak ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131rmak, bu hedeflere ula\u015fman\u0131z i\u00e7in kritik bir ad\u0131md\u0131r. Bu kapsaml\u0131 rehberde, Redis'in temel \u00f6zelliklerinden ba\u015flayarak, CentOS \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla nas\u0131l korunaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. B\u00f6ylece, verilerinizin hem h\u0131zl\u0131 hem de g\u00fcvende oldu\u011fundan emin olabilirsiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-24T17:24:11+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"27 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","datePublished":"2026-02-24T17:24:11+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/"},"wordCount":4805,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Redis"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/","name":"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-24T17:24:11+00:00","description":"Uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131 art\u0131rmak, veri eri\u015fim h\u0131z\u0131n\u0131 optimize etmek veya ger\u00e7ek zamanl\u0131 analiz yetenekleri kazanmak m\u0131 istiyorsunuz? CentOS sunucunuzda Redis'i kurmak ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131rmak, bu hedeflere ula\u015fman\u0131z i\u00e7in kritik bir ad\u0131md\u0131r. Bu kapsaml\u0131 rehberde, Redis'in temel \u00f6zelliklerinden ba\u015flayarak, CentOS \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve en iyi g\u00fcvenlik uygulamalar\u0131yla nas\u0131l korunaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. B\u00f6ylece, verilerinizin hem h\u0131zl\u0131 hem de g\u00fcvende oldu\u011fundan emin olabilirsiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/redis-nedir-ve-neden-kullanmalisiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Redis Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?"}]},{"@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\/40148","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=40148"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40148\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=40148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=40148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=40148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}