{"id":38926,"date":"2026-02-10T19:40:48","date_gmt":"2026-02-10T16:40:48","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38926"},"modified":"2026-02-10T19:40:48","modified_gmt":"2026-02-10T16:40:48","slug":"redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/","title":{"rendered":"Redis&#8217;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]"},"content":{"rendered":"<p><body><\/p>\n<h2>Redis&#8217;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]<\/h2>\n<p>Veri depolama ve \u00f6nbellekleme \u00e7\u00f6z\u00fcmleri, modern web uygulamalar\u0131n\u0131n ve servislerinin performans\u0131nda kritik bir rol oynamaktad\u0131r. Bu ba\u011flamda, Redis (Remote Dictionary Server), y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposu olarak \u00f6ne \u00e7\u0131kmaktad\u0131r. Anahtar-de\u011fer (key-value) depolama sisteminden daha fazlas\u0131n\u0131 sunan Redis, listeler, setler, hash&#8217;ler, s\u0131ral\u0131 setler gibi \u00e7e\u015fitli veri yap\u0131lar\u0131n\u0131 destekler. Bu yetenekleri sayesinde \u00f6nbellekleme, mesaj kuyruklar\u0131, ger\u00e7ek zamanl\u0131 analizler ve oturum y\u00f6netimi gibi bir\u00e7ok farkl\u0131 senaryoda tercih edilmektedir.<\/p>\n<p>Ubuntu 20.04 LTS (Long Term Support), uzun s\u00fcreli deste\u011fi ve kararl\u0131l\u0131\u011f\u0131 ile sunucu ortamlar\u0131nda s\u0131k\u00e7a kullan\u0131lan bir i\u015fletim sistemidir. Bu makale, Redis&#8217;i Ubuntu 20.04 sunucunuza nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve g\u00fcvenli\u011fini nas\u0131l sa\u011flayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m, h\u0131zl\u0131 bir ba\u015flang\u0131\u00e7 k\u0131lavuzu \u015feklinde a\u00e7\u0131klamaktad\u0131r. Hem APT paket y\u00f6neticisi ile kolay kurulumu hem de kaynak koddan derleme ile daha esnek bir kurulumu ele alacak, ard\u0131ndan Redis&#8217;in temel yap\u0131land\u0131rma ayarlar\u0131n\u0131 ve olmazsa olmaz g\u00fcvenlik \u00f6nlemlerini detayland\u0131raca\u011f\u0131z. Amac\u0131m\u0131z, Redis&#8217;i g\u00fcvenli ve performansl\u0131 bir \u015fekilde \u00e7al\u0131\u015f\u0131r hale getirmenizi sa\u011flamakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu k\u0131lavuzu takip edebilmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6n gereksinimlere sahip olman\u0131z gerekmektedir:<\/p>\n<p>*   Ubuntu 20.04 \u00e7al\u0131\u015ft\u0131ran bir sunucu veya sanal makine.<br \/>\n*   <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 hesab\u0131.<br \/>\n*   Temel Linux komut sat\u0131r\u0131 bilgisi.<br \/>\n*   SSH eri\u015fimi (uzak sunucu kullan\u0131yorsan\u0131z).<\/p>\n<h3>1. Sistem G\u00fcncelleme ve Gerekli Paketleri Kurma<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan emin olmak ve gerekli temel paketleri kurmak iyi bir uygulamad\u0131r. Bu, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler ve en son g\u00fcvenlik yamalar\u0131na sahip olman\u0131z\u0131 sa\u011flar.<\/p>\n<p>\u00d6ncelikle, paket listelerinizi g\u00fcncelleyin ve y\u00fckl\u00fc paketlerinizi y\u00fckseltin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Ard\u0131ndan, Redis&#8217;i derlemek veya test etmek i\u00e7in gerekli olabilecek baz\u0131 yard\u0131mc\u0131 paketleri kural\u0131m. APT ile kurulum yapacaksan\u0131z <code>build-essential<\/code> do\u011frudan gerekli olmayabilir ancak kaynak koddan kurulum i\u00e7in \u00f6nemlidir. <code>tcl<\/code> paketi ise Redis&#8217;in kendi testlerini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt install build-essential tcl -y<\/code><\/pre>\n<p>Bu komutlar tamamland\u0131ktan sonra, Redis kurulumuna ge\u00e7meye haz\u0131r\u0131z.<\/p>\n<h3>2. Redis&#8217;i Kurma<\/h3>\n<p>Redis&#8217;i Ubuntu 20.04 \u00fczerine kurman\u0131n iki ana yolu vard\u0131r: Ubuntu&#8217;nun APT paket y\u00f6neticisini kullanmak veya Redis&#8217;in kaynak kodunu indirip derlemek. APT ile kurulum daha h\u0131zl\u0131 ve kolayd\u0131r, ancak genellikle depolarda bulunan Redis s\u00fcr\u00fcm\u00fc en g\u00fcncel s\u00fcr\u00fcm olmayabilir. Kaynak koddan kurulum ise en g\u00fcncel s\u00fcr\u00fcme eri\u015fmenizi sa\u011flar ve daha fazla yap\u0131land\u0131rma esnekli\u011fi sunar, ancak biraz daha fazla manuel ad\u0131m gerektirir.<\/p>\n<h4>2.1. APT Paket Y\u00f6neticisi ile Kurulum<\/h4>\n<p>Bu y\u00f6ntem, Redis&#8217;i kurman\u0131n en basit ve h\u0131zl\u0131 yoludur. Ubuntu&#8217;nun resmi depolar\u0131ndaki <code>redis-server<\/code> paketi, Redis sunucusunu ve gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 otomatik olarak y\u00fckler ve bir systemd servisi olarak yap\u0131land\u0131r\u0131r.<\/p>\n<p>Redis&#8217;i APT kullanarak kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install redis-server -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Redis servisi otomatik olarak ba\u015flat\u0131lmal\u0131 ve sistem ba\u015flang\u0131c\u0131nda etkinle\u015ftirilmelidir. Servisin durumunu kontrol ederek \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olabiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status redis-server<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz. E\u011fer Redis \u00e7al\u0131\u015fm\u0131yorsa, a\u015fa\u011f\u0131daki komutlarla ba\u015flatabilir ve ba\u015flang\u0131\u00e7ta etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start redis-server\nsudo systemctl enable redis-server<\/code><\/pre>\n<p>Redis&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in Redis komut sat\u0131r\u0131 aray\u00fcz\u00fcn\u00fc (CLI) kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">redis-cli ping<\/code><\/pre>\n<p>Yan\u0131t olarak <code>PONG<\/code> al\u0131rsan\u0131z, Redis sunucunuz ba\u015far\u0131yla \u00e7al\u0131\u015f\u0131yor demektir.<\/p>\n<h4>2.2. Kaynak Koddan Kurulum (\u0130ste\u011fe Ba\u011fl\u0131)<\/h4>\n<p>En g\u00fcncel Redis s\u00fcr\u00fcm\u00fcn\u00fc kullanmak veya \u00f6zel derleme se\u00e7eneklerine ihtiya\u00e7 duymak isterseniz, Redis&#8217;i kaynak koddan derleyebilirsiniz. Bu y\u00f6ntem, APT ile kurulan s\u00fcr\u00fcmden daha yeni bir s\u00fcr\u00fcm\u00fc kurman\u0131za olanak tan\u0131r.<\/p>\n<p>\u00d6ncelikle, Redis&#8217;in resmi web sitesinden en son kararl\u0131 s\u00fcr\u00fcm\u00fcn ba\u011flant\u0131s\u0131n\u0131 bulup indirin. A\u015fa\u011f\u0131daki \u00f6rnekte, mevcut en kararl\u0131 s\u00fcr\u00fcm\u00fc indirmek i\u00e7in <code>wget<\/code> kullan\u0131lm\u0131\u015ft\u0131r:<\/p>\n<pre><code class=\"language-bash\">wget http:\/\/download.redis.io\/redis-stable.tar.gz<\/code><\/pre>\n<p>\u0130ndirilen ar\u015fivi a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">tar xvzf redis-stable.tar.gz<\/code><\/pre>\n<p>Olu\u015fan dizine gidin:<\/p>\n<pre><code class=\"language-bash\">cd redis-stable<\/code><\/pre>\n<p>\u015eimdi Redis&#8217;i derleyin. <code>make<\/code> komutu, kaynak kodunu derleyerek y\u00fcr\u00fct\u00fclebilir dosyalar\u0131 olu\u015fturur:<\/p>\n<pre><code class=\"language-bash\">make<\/code><\/pre>\n<p>Derleme tamamland\u0131ktan sonra, Redis&#8217;in kendi testlerini \u00e7al\u0131\u015ft\u0131rmak iyi bir uygulamad\u0131r. Bu ad\u0131m iste\u011fe ba\u011fl\u0131d\u0131r ancak herhangi bir uyumluluk veya derleme sorununu tespit etmeye yard\u0131mc\u0131 olabilir:<\/p>\n<pre><code class=\"language-bash\">make test<\/code><\/pre>\n<p>Testler ba\u015far\u0131l\u0131 olursa, Redis&#8217;i sisteminize kurun. <code>make install<\/code> komutu, Redis y\u00fcr\u00fct\u00fclebilir dosyalar\u0131n\u0131 (redis-server, redis-cli vb.) <code>\/usr\/local\/bin<\/code> dizinine kopyalar:<\/p>\n<pre><code class=\"language-bash\">sudo make install<\/code><\/pre>\n<p>Redis&#8217;i bir systemd servisi olarak yap\u0131land\u0131rmak, kaynak koddan kurulumda \u00f6nemlidir. Bu, Redis&#8217;in arka planda \u00e7al\u0131\u015fmas\u0131n\u0131, otomatik olarak ba\u015flat\u0131lmas\u0131n\u0131 ve sistem taraf\u0131ndan kolayca y\u00f6netilmesini sa\u011flar.<\/p>\n<p><strong>Redis kullan\u0131c\u0131s\u0131 ve dizinleri olu\u015fturma:<\/strong><\/p>\n<p>Redis&#8217;i ayr\u0131cal\u0131ks\u0131z bir kullan\u0131c\u0131 olarak \u00e7al\u0131\u015ft\u0131rmak g\u00fcvenlik a\u00e7\u0131s\u0131ndan en iyi uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo adduser --system --group --no-create-home redis\nsudo mkdir \/etc\/redis\nsudo mkdir \/var\/lib\/redis\nsudo chown redis:redis \/var\/lib\/redis<\/code><\/pre>\n<p><strong>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kopyalama:<\/strong><\/p>\n<p>Derledi\u011finiz Redis dizininde bulunan <code>redis.conf<\/code> dosyas\u0131n\u0131 <code>\/etc\/redis\/<\/code> dizinine kopyalay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo cp redis.conf \/etc\/redis\/redis.conf<\/code><\/pre>\n<p><strong>Yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenleme:<\/strong><\/p>\n<p>\u015eimdi kopyalad\u0131\u011f\u0131n\u0131z yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenleyin (<code>sudo nano \/etc\/redis\/redis.conf<\/code>):<\/p>\n<p>*   <code>daemonize no<\/code> sat\u0131r\u0131n\u0131 <code>daemonize yes<\/code> olarak de\u011fi\u015ftirin (Redis&#8217;in arka planda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar).<br \/>\n*   <code>pidfile \/var\/run\/redis_6379.pid<\/code> sat\u0131r\u0131n\u0131 bulun ve gerekirse do\u011frulay\u0131n.<br \/>\n*   <code>logfile \"\"<\/code> sat\u0131r\u0131n\u0131 <code>logfile \"\/var\/log\/redis\/redis.log\"<\/code> olarak de\u011fi\u015ftirin.<br \/>\n*   <code>dir .\/<\/code> sat\u0131r\u0131n\u0131 <code>dir \/var\/lib\/redis<\/code> olarak de\u011fi\u015ftirin (veritaban\u0131 dosyalar\u0131n\u0131n depolanaca\u011f\u0131 dizin).<\/p>\n<p><strong>Systemd hizmet dosyas\u0131 olu\u015fturma:<\/strong><\/p>\n<p>Redis i\u00e7in bir systemd hizmet dosyas\u0131 olu\u015fturarak onu bir servis olarak y\u00f6netebiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/systemd\/system\/redis.service<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-ini\">[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\nTimeoutStartSec=0\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n (Ctrl+X, Y, Enter).<\/p>\n<p><strong>Servisi etkinle\u015ftirme ve ba\u015flatma:<\/strong><\/p>\n<p>Systemd yap\u0131land\u0131rmas\u0131n\u0131 yeniden y\u00fckleyin, Redis servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl start redis\nsudo systemctl enable redis<\/code><\/pre>\n<p>Servisin durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status redis<\/code><\/pre>\n<p><code>active (running)<\/code> ifadesini g\u00f6rmelisiniz. <code>redis-cli ping<\/code> komutuyla da test edebilirsiniz.<\/p>\n<h3>3. Redis Temel Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Redis&#8217;in yap\u0131land\u0131rma dosyas\u0131, performans\u0131n\u0131, g\u00fcvenli\u011fini ve davran\u0131\u015f\u0131n\u0131 kontrol eden bir\u00e7ok ayar i\u00e7erir. APT ile kurulum yapt\u0131ysan\u0131z <code>\/etc\/redis\/redis.conf<\/code>, kaynak koddan kurulum yapt\u0131ysan\u0131z ve yukar\u0131daki ad\u0131mlar\u0131 izlediyseniz yine <code>\/etc\/redis\/redis.conf<\/code> konumunda bulunur. Bu dosyay\u0131 d\u00fczenlemek i\u00e7in bir metin d\u00fczenleyici kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/redis\/redis.conf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131da, Redis&#8217;in temel ve \u00f6nemli yap\u0131land\u0131rma ayarlar\u0131ndan baz\u0131lar\u0131 a\u00e7\u0131klanm\u0131\u015ft\u0131r:<\/p>\n<h4>3.1. Bind IP Adresi<\/h4>\n<p><code>bind<\/code> y\u00f6nergesi, Redis&#8217;in hangi IP adreslerini dinleyece\u011fini belirler.<\/p>\n<pre><code class=\"language-\">bind 127.0.0.1 -::1<\/code><\/pre>\n<p>*   <strong><code>bind 127.0.0.1 -::1<\/code> (Varsay\u0131lan):<\/strong> Redis&#8217;in yaln\u0131zca yerel makineden (localhost) gelen ba\u011flant\u0131lar\u0131 kabul etmesini sa\u011flar. Bu, en g\u00fcvenli ayard\u0131r ve Redis&#8217;i yaln\u0131zca ayn\u0131 sunucu \u00fczerindeki uygulamalar kullanacaksa idealdir.<br \/>\n*   <strong><code># bind 127.0.0.1 -::1<\/code> ve <code>bind 0.0.0.0<\/code>:<\/strong> Bu ayar, Redis&#8217;in t\u00fcm a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 kabul etmesini sa\u011flar. <strong>Bu, internete a\u00e7\u0131k bir sunucuda kesinlikle \u00f6nerilmez ve \u00e7ok ciddi g\u00fcvenlik riskleri ta\u015f\u0131r.<\/strong> Yaln\u0131zca g\u00fcvendi\u011finiz bir yerel a\u011f i\u00e7indeyseniz ve uygun g\u00fcvenlik duvar\u0131 kurallar\u0131 uygulad\u0131ysan\u0131z kullan\u0131lmal\u0131d\u0131r.<br \/>\n*   <strong><code>bind 192.168.1.100<\/code>:<\/strong> Redis&#8217;in belirli bir \u00f6zel IP adresinden gelen ba\u011flant\u0131lar\u0131 kabul etmesini sa\u011flar. E\u011fer Redis&#8217;e sadece belirli bir i\u00e7 a\u011f IP&#8217;sinden eri\u015filecekse bu ayar tercih edilmelidir.<\/p>\n<p><strong>G\u00fcvenlik Notu:<\/strong> Redis&#8217;i asla <code>0.0.0.0<\/code> adresine ba\u011flamay\u0131n veya <code>bind<\/code> y\u00f6nergesini yorum sat\u0131r\u0131 yapmay\u0131n, \u00f6zellikle de internete a\u00e7\u0131k bir sunucuda. Bu, sunucunuzu sald\u0131r\u0131lara kar\u015f\u0131 savunmas\u0131z hale getirir.<\/p>\n<h4>3.2. Koruma Modu (Protected Mode)<\/h4>\n<pre><code class=\"language-\">protected-mode yes<\/code><\/pre>\n<p>*   <code>protected-mode<\/code> ayar\u0131 Redis 3.2 ve sonraki s\u00fcr\u00fcmlerde varsay\u0131lan olarak etkindir. E\u011fer Redis d\u0131\u015far\u0131dan eri\u015filebilir bir IP adresine ba\u011fl\u0131ysa (yani <code>bind 127.0.0.1<\/code> d\u0131\u015f\u0131ndaki bir adrese), ancak bir parola (<code>requirepass<\/code>) ayarlanmam\u0131\u015fsa, Redis yaln\u0131zca localhost ba\u011flant\u0131lar\u0131n\u0131 kabul eder. Bu, yanl\u0131\u015fl\u0131kla yap\u0131land\u0131r\u0131lm\u0131\u015f, parola korumas\u0131 olmayan Redis \u00f6rneklerinin internete a\u00e7\u0131k hale gelmesini engellemek i\u00e7in \u00f6nemli bir g\u00fcvenlik \u00f6zelli\u011fidir.<br \/>\n*   E\u011fer Redis&#8217;i d\u0131\u015far\u0131dan eri\u015filebilir hale getirmek istiyorsan\u0131z, ya bir parola ayarlamal\u0131 ya da <code>protected-mode no<\/code> olarak ayarlamal\u0131s\u0131n\u0131z (ki bu, parola olmadan kesinlikle \u00f6nerilmez).<\/p>\n<h4>3.3. Port<\/h4>\n<pre><code class=\"language-\">port 6379<\/code><\/pre>\n<p>Redis&#8217;in dinleyece\u011fi TCP portunu belirler. Varsay\u0131lan olarak <code>6379<\/code> kullan\u0131l\u0131r. G\u00fcvenlik i\u00e7in varsay\u0131lan portu de\u011fi\u015ftirmek, &#8220;security through obscurity&#8221; (gizleyerek g\u00fcvenlik) olarak bilinse de, basit port taramalar\u0131n\u0131 atlatmaya yard\u0131mc\u0131 olabilir. Ancak bu, tek ba\u015f\u0131na bir g\u00fcvenlik \u00f6nlemi de\u011fildir.<\/p>\n<h4>3.4. Veritaban\u0131 Say\u0131s\u0131<\/h4>\n<pre><code class=\"language-\">databases 16<\/code><\/pre>\n<p>Redis&#8217;in destekleyece\u011fi veritaban\u0131 say\u0131s\u0131n\u0131 belirler. Varsay\u0131lan olarak 16 veritaban\u0131 (0&#8217;dan 15&#8217;e kadar) bulunur. <code>SELECT <db_numaras\u0131><\/code> komutuyla veritabanlar\u0131 aras\u0131nda ge\u00e7i\u015f yapabilirsiniz.<\/p>\n<h4>3.5. Snapshotting \/ Kal\u0131c\u0131l\u0131k (Persistence)<\/h4>\n<p>Redis, bellek i\u00e7i bir veritaban\u0131 olmas\u0131na ra\u011fmen, verileri kal\u0131c\u0131 hale getirmek i\u00e7in iki ana mekanizma sunar:<\/p>\n<p>*   <strong>RDB (Redis Database Backup):<\/strong> Belirli aral\u0131klarla veritaban\u0131n\u0131n anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc (snapshot) al\u0131r ve diske kaydeder.<\/p>\n<pre><code class=\"language-\">save 900 1    # 900 saniye (15 dakika) i\u00e7inde en az 1 de\u011fi\u015fiklik varsa kaydet\n    save 300 10   # 300 saniye (5 dakika) i\u00e7inde en az 10 de\u011fi\u015fiklik varsa kaydet\n    save 60 10000 # 60 saniye i\u00e7inde en az 10000 de\u011fi\u015fiklik varsa kaydet<\/code><\/pre>\n<p>    RDB, daha az disk alan\u0131 kullan\u0131r ve daha h\u0131zl\u0131 ba\u015flang\u0131\u00e7 sa\u011flar, ancak son yedeklemeden sonraki veriler kaybolabilir.<br \/>\n*   <strong>AOF (Append Only File):<\/strong> Redis&#8217;e gelen her yazma i\u015flemini bir log dosyas\u0131na kaydeder. Bu, daha y\u00fcksek veri dayan\u0131kl\u0131l\u0131\u011f\u0131 sa\u011flar, \u00e7\u00fcnk\u00fc Redis&#8217;i yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zda AOF dosyas\u0131ndaki t\u00fcm i\u015flemler tekrar oynat\u0131larak veriler geri y\u00fcklenir.<\/p>\n<pre><code class=\"language-\">appendonly no<\/code><\/pre>\n<p>    <code>appendonly yes<\/code> olarak de\u011fi\u015ftirerek AOF&#8217;yi etkinle\u015ftirebilirsiniz.<\/p>\n<pre><code class=\"language-\">appendonly yes\n    appendfilename \"appendonly.aof\"\n    appendfsync everysec<\/code><\/pre>\n<p>    <code>appendfsync<\/code> ayar\u0131, AOF dosyas\u0131n\u0131n diske ne s\u0131kl\u0131kla senkronize edilece\u011fini kontrol eder. <code>everysec<\/code> \u00e7o\u011fu durum i\u00e7in iyi bir denge sunar. AOF, RDB&#8217;ye g\u00f6re daha fazla disk alan\u0131 kullanabilir ve ba\u015flang\u0131\u00e7 s\u00fcresi daha uzun olabilir.<br \/>\n    <strong>\u00d6neri:<\/strong> \u00c7o\u011fu uygulama i\u00e7in AOF&#8217;yi etkinle\u015ftirmek, daha iyi veri dayan\u0131kl\u0131l\u0131\u011f\u0131 sa\u011flar. Hatta hem RDB hem de AOF&#8217;yi ayn\u0131 anda kullanmak m\u00fcmk\u00fcnd\u00fcr (Redis 4.0 ve sonras\u0131 Hibrit Kal\u0131c\u0131l\u0131k).<\/p>\n<h4>3.6. Bellek Limiti (Memory Limit)<\/h4>\n<pre><code class=\"language-\"># maxmemory <bytes><\/code><\/pre>\n<p>Redis&#8217;in kullanabilece\u011fi maksimum bellek miktar\u0131n\u0131 belirler. Bu s\u0131n\u0131ra ula\u015f\u0131ld\u0131\u011f\u0131nda, <code>maxmemory-policy<\/code> ayar\u0131na g\u00f6re eski anahtarlar silinir.<\/p>\n<pre><code class=\"language-\">maxmemory 512mb\nmaxmemory-policy noeviction<\/code><\/pre>\n<p>*   <code>maxmemory-policy<\/code>: Bellek limitine ula\u015f\u0131ld\u0131\u011f\u0131nda hangi anahtarlar\u0131n at\u0131laca\u011f\u0131n\u0131 belirler.<br \/>\n    *   <code>noeviction<\/code>: Yeni yazma i\u015flemlerini reddeder (varsay\u0131lan).<br \/>\n    *   <code>allkeys-lru<\/code>: En az kullan\u0131lan anahtarlar\u0131 siler.<br \/>\n    *   <code>volatile-lru<\/code>: Sadece TTL (Time To Live) ayar\u0131 olan anahtarlar aras\u0131ndan en az kullan\u0131lanlar\u0131 siler.<br \/>\n    *   Di\u011fer politikalar da mevcuttur.<\/p>\n<h4>3.7. Loglama (Logging)<\/h4>\n<pre><code class=\"language-\">logfile \"\"<\/code><\/pre>\n<p>Redis loglar\u0131n\u0131n yaz\u0131laca\u011f\u0131 dosyay\u0131 belirtir. <code>logfile \"\/var\/log\/redis\/redis.log\"<\/code> olarak ayarlamak, loglar\u0131 standart bir konuma y\u00f6nlendirir ve sorun giderme i\u00e7in faydal\u0131d\u0131r.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda de\u011fi\u015fiklik yapt\u0131ktan sonra, Redis servisini yeniden ba\u015flatmay\u0131 unutmay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart redis-server  # APT kurulumu i\u00e7in\n<h2>Veya<\/h2>\nsudo systemctl restart redis         # Kaynak koddan kurulum i\u00e7in<\/code><\/pre>\n<h3>4. Redis G\u00fcvenli\u011fini Sa\u011flama<\/h3>\n<p>Redis, varsay\u0131lan olarak g\u00fcvenli\u011fe \u00f6ncelik vermez ve &#8220;g\u00fcvenilir bir ortamda \u00e7al\u0131\u015fmas\u0131&#8221; varsay\u0131m\u0131yla tasarlanm\u0131\u015ft\u0131r. Bu nedenle, \u00fcretim ortamlar\u0131nda kullanmadan \u00f6nce Redis&#8217;in g\u00fcvenli\u011fini sa\u011flamak kritik \u00f6neme sahiptir. G\u00fcvenlik a\u00e7\u0131klar\u0131, veri s\u0131z\u0131nt\u0131lar\u0131na veya yetkisiz eri\u015fime yol a\u00e7abilir.<\/p>\n<h4>4.1. Parola Korumas\u0131 (AUTH)<\/h4>\n<p>Redis&#8217;e eri\u015fimi parolayla korumak, yapman\u0131z gereken ilk ve en \u00f6nemli g\u00fcvenlik ad\u0131mlar\u0131ndan biridir.<\/p>\n<p><code>redis.conf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/redis\/redis.conf<\/code><\/pre>\n<p><code># requirepass foobared<\/code> sat\u0131r\u0131n\u0131 bulun ve yorum i\u015faretini kald\u0131rarak g\u00fc\u00e7l\u00fc bir parola belirleyin:<\/p>\n<pre><code class=\"language-\">requirepass sizin_cok_guclu_parolaniz_buraya<\/code><\/pre>\n<p><strong>\u00d6nemli:<\/strong> <code>sizin_cok_guclu_parolaniz_buraya<\/code> yerine tahmin edilmesi zor, karma\u015f\u0131k bir parola kullan\u0131n.<\/p>\n<p>De\u011fi\u015fiklikleri kaydedin ve Redis servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart redis-server # veya redis<\/code><\/pre>\n<p>Art\u0131k Redis&#8217;e ba\u011flanmak i\u00e7in parolay\u0131 kullanman\u0131z gerekecek. Redis CLI ile ba\u011flan\u0131rken parolay\u0131 do\u011frudan belirtebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">redis-cli -a sizin_cok_guclu_parolaniz_buraya<\/code><\/pre>\n<p>Veya ba\u011fland\u0131ktan sonra <code>AUTH<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">redis-cli\nAUTH sizin_cok_guclu_parolaniz_buraya<\/code><\/pre>\n<p>Parola korumas\u0131 olmadan herhangi bir komut \u00e7al\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015f\u0131rsan\u0131z, <code>(error) NOAUTH Authentication required.<\/code> hatas\u0131 al\u0131rs\u0131n\u0131z.<\/p>\n<h4>4.2. Uzaktan Eri\u015fimi S\u0131n\u0131rlama<\/h4>\n<p>Redis&#8217;in <code>bind<\/code> y\u00f6nergesi ile uzaktan eri\u015fimi kontrol etmek, g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00e7ok \u00f6nemlidir.<\/p>\n<p>*   <strong>Yaln\u0131zca Yerel Eri\u015fim (\u00d6nerilen):<\/strong> Redis&#8217;i yaln\u0131zca ayn\u0131 sunucu \u00fczerindeki uygulamalar kullanacaksa, <code>redis.conf<\/code> dosyas\u0131ndaki <code>bind<\/code> y\u00f6nergesini varsay\u0131lan olarak b\u0131rak\u0131n:<\/p>\n<pre><code class=\"language-\">bind 127.0.0.1 -::1<\/code><\/pre>\n<p>    Bu, Redis&#8217;in d\u0131\u015far\u0131dan eri\u015filemez olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>Belirli IP Adreslerinden Eri\u015fim:<\/strong> E\u011fer Redis&#8217;e belirli bir i\u00e7 a\u011f IP adresinden veya ba\u015fka bir sunucudan eri\u015filmesi gerekiyorsa, <code>bind<\/code> y\u00f6nergesini o IP adresine ayarlay\u0131n:<\/p>\n<pre><code class=\"language-\">bind 192.168.1.100<\/code><\/pre>\n<p>    Bu durumda, yaln\u0131zca <code>192.168.1.100<\/code> IP adresinden gelen ba\u011flant\u0131lar kabul edilecektir.<br \/>\n*   <strong>Asla T\u00fcm Aray\u00fczlere Ba\u011flamay\u0131n:<\/strong> Daha \u00f6nce belirtildi\u011fi gibi, <code>bind 0.0.0.0<\/code> veya <code>bind<\/code> y\u00f6nergesini yorum sat\u0131r\u0131 yapmak, Redis&#8217;i t\u00fcm a\u011f aray\u00fczlerine a\u00e7ar. Bu, g\u00fcvenlik duvar\u0131 kurallar\u0131 olmadan asla yap\u0131lmamal\u0131d\u0131r.<\/p>\n<h4>4.3. G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h4>\n<p>Ubuntu&#8217;da UFW (Uncomplicated Firewall) g\u00fcvenlik duvar\u0131, a\u011f trafi\u011fini y\u00f6netmek i\u00e7in kolay bir yol sunar. Redis&#8217;e eri\u015fimi daha da k\u0131s\u0131tlamak i\u00e7in UFW&#8217;yi yap\u0131land\u0131rmak \u00f6nemlidir.<\/p>\n<p>\u00d6ncelikle UFW&#8217;nin etkin oldu\u011fundan ve SSH ba\u011flant\u0131n\u0131z\u0131n kesilmemesi i\u00e7in izin verildi\u011finden emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable\nsudo ufw allow OpenSSH<\/code><\/pre>\n<p>\u015eimdi Redis i\u00e7in kurallar\u0131 ekleyelim:<\/p>\n<p>*   <strong>Yaln\u0131zca Yerel Eri\u015fim \u0130\u00e7in (E\u011fer <code>bind 127.0.0.1<\/code> ise):<\/strong> Bu durumda, UFW&#8217;de Redis portunu d\u0131\u015far\u0131dan gelen ba\u011flant\u0131lara a\u00e7man\u0131za gerek yoktur, \u00e7\u00fcnk\u00fc Redis zaten d\u0131\u015f ba\u011flant\u0131lar\u0131 dinlemiyor olacakt\u0131r. Ancak, e\u011fer Redis&#8217;i farkl\u0131 bir portta \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z ve yerel eri\u015fim istiyorsan\u0131z, bu kural\u0131 eklemek gereksizdir.<\/p>\n<p>*   <strong>Belirli Bir IP Adresinden Eri\u015fim \u0130\u00e7in (E\u011fer <code>bind <IP_ADRESI><\/code> ise):<\/strong> E\u011fer Redis&#8217;e belirli bir IP adresinden (\u00f6rne\u011fin, uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 ba\u015fka bir sunucu) eri\u015filmesi gerekiyorsa, o IP adresinden gelen ba\u011flant\u0131lara izin verin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from 192.168.1.10 to any port 6379<\/code><\/pre>\n<p>    Burada <code>192.168.1.10<\/code> Redis&#8217;e ba\u011flanacak istemci sunucunun IP adresidir.<\/p>\n<p>*   <strong>Belirli Bir Alt A\u011fdan Eri\u015fim \u0130\u00e7in:<\/strong> E\u011fer belirli bir alt a\u011fdaki t\u00fcm sunucular\u0131n Redis&#8217;e eri\u015fmesi gerekiyorsa:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from 192.168.1.0\/24 to any port 6379<\/code><\/pre>\n<p>G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<h4>4.4. Varsay\u0131lan Portu De\u011fi\u015ftirme<\/h4>\n<p>Varsay\u0131lan Redis portu olan <code>6379<\/code>&#8216;u de\u011fi\u015ftirmek, otomatik bot taramalar\u0131n\u0131 ve genel sald\u0131r\u0131 giri\u015fimlerini bir nebze engelleyebilir. Bu, &#8220;security through obscurity&#8221; olarak adland\u0131r\u0131lsa da, savunma katmanlar\u0131ndan biri olarak d\u00fc\u015f\u00fcn\u00fclebilir.<\/p>\n<p><code>redis.conf<\/code> dosyas\u0131nda <code>port 6379<\/code> sat\u0131r\u0131n\u0131 bulun ve farkl\u0131 bir port numaras\u0131yla de\u011fi\u015ftirin (\u00f6rne\u011fin, <code>port 12345<\/code>):<\/p>\n<pre><code class=\"language-\">port 12345<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydedin ve Redis&#8217;i yeniden ba\u015flat\u0131n. G\u00fcvenlik duvar\u0131n\u0131z\u0131 da yeni port numaras\u0131na g\u00f6re g\u00fcncellemeyi unutmay\u0131n.<\/p>\n<h4>4.5. Tehlikeli Komutlar\u0131 Yeniden Adland\u0131rma veya Devre D\u0131\u015f\u0131 B\u0131rakma<\/h4>\n<p><code>FLUSHALL<\/code> ve <code>FLUSHDB<\/code> gibi komutlar, t\u00fcm veritaban\u0131n\u0131 veya mevcut veritaban\u0131n\u0131 temizler. Yanl\u0131\u015f ellerde kullan\u0131ld\u0131\u011f\u0131nda ciddi veri kayb\u0131na yol a\u00e7abilirler. Bu komutlar\u0131 yeniden adland\u0131rarak veya bo\u015f bir dizeye ayarlayarak devre d\u0131\u015f\u0131 b\u0131rakabilirsiniz.<\/p>\n<p><code>redis.conf<\/code> dosyas\u0131nda:<\/p>\n<pre><code class=\"language-\">rename-command FLUSHALL \"\"\nrename-command FLUSHDB \"\"<\/code><\/pre>\n<p>Bu, bu komutlar\u0131n art\u0131k kullan\u0131lamayaca\u011f\u0131 anlam\u0131na gelir. E\u011fer bu komutlara ihtiyac\u0131n\u0131z varsa, onlar\u0131 daha az tahmin edilebilir bir adla yeniden adland\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-\">rename-command FLUSHALL \"my_super_secret_flushall_command\"<\/code><\/pre>\n<p>De\u011fi\u015fikliklerden sonra Redis&#8217;i yeniden ba\u015flat\u0131n.<\/p>\n<h4>4.6. Redis Kullan\u0131c\u0131s\u0131 ve \u0130zinler<\/h4>\n<p>Redis&#8217;i ayr\u0131cal\u0131ks\u0131z bir kullan\u0131c\u0131 (genellikle <code>redis<\/code> kullan\u0131c\u0131s\u0131) olarak \u00e7al\u0131\u015ft\u0131rmak, g\u00fcvenlik a\u00e7\u0131s\u0131ndan en iyi uygulamad\u0131r. APT kurulumu bunu otomatik olarak yapar. Kaynak koddan kurulumda da yukar\u0131da belirtilen ad\u0131mlarla <code>redis<\/code> kullan\u0131c\u0131s\u0131 olu\u015fturulmu\u015ftur.<\/p>\n<p>Redis yap\u0131land\u0131rma dosyas\u0131 (<code>\/etc\/redis\/redis.conf<\/code>), veritaban\u0131 dosyalar\u0131 (<code>\/var\/lib\/redis<\/code>) ve log dosyalar\u0131 (<code>\/var\/log\/redis\/redis.log<\/code>) gibi hassas dosyalar\u0131n do\u011fru izinlere sahip oldu\u011fundan emin olun. Genellikle bu dosyalar\u0131n yaln\u0131zca <code>redis<\/code> kullan\u0131c\u0131s\u0131 ve <code>root<\/code> taraf\u0131ndan okunabilir olmas\u0131 yeterlidir.<\/p>\n<h4>4.7. G\u00fcncel Tutma<\/h4>\n<p>Redis&#8217;i d\u00fczenli olarak en son kararl\u0131 s\u00fcr\u00fcme g\u00fcncellemek, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131na kar\u015f\u0131 korunman\u0131n en iyi yoludur. <code>sudo apt update && sudo apt upgrade<\/code> komutlar\u0131n\u0131 d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131rmak (APT kurulumu i\u00e7in) veya Redis&#8217;in web sitesini takip ederek manuel olarak g\u00fcncellemek (kaynak koddan kurulum i\u00e7in) \u00f6nemlidir.<\/p>\n<h3>5. Redis&#8217;i Test Etme ve Kullanma<\/h3>\n<p>Redis sunucunuzu kurduktan ve g\u00fcvenli\u011fini sa\u011flad\u0131ktan sonra, onunla etkile\u015fim kurman\u0131n ve temel i\u015flevlerini test etmenin zaman\u0131 geldi.<\/p>\n<p>Redis CLI&#8217;y\u0131 ba\u015flat\u0131n. E\u011fer parola belirlediyseniz, parolay\u0131 kullanarak ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">redis-cli -a sizin_cok_guclu_parolaniz_buraya<\/code><\/pre>\n<p>Ba\u011fland\u0131ktan sonra, birka\u00e7 temel Redis komutunu deneyebilirsiniz:<\/p>\n<p>*   <strong>Ba\u011flant\u0131y\u0131 test etme:<\/strong><\/p>\n<pre><code class=\"language-\">ping<\/code><\/pre>\n<p>    Yan\u0131t: <code>PONG<\/code><\/p>\n<p>*   <strong>Anahtar-de\u011fer \u00e7ifti ayarlama:<\/strong><\/p>\n<pre><code class=\"language-\">set mykey \"Hello Redis World\"<\/code><\/pre>\n<p>    Yan\u0131t: <code>OK<\/code><\/p>\n<p>*   <strong>Anahtar\u0131n de\u011ferini alma:<\/strong><\/p>\n<pre><code class=\"language-\">get mykey<\/code><\/pre>\n<p>    Yan\u0131t: <code>\"Hello Redis World\"<\/code><\/p>\n<p>*   <strong>Bir listeye \u00f6\u011fe ekleme (soldan):<\/strong><\/p>\n<pre><code class=\"language-\">lpush mylist \"item1\" \"item2\" \"item3\"<\/code><\/pre>\n<p>    Yan\u0131t: <code>(integer) 3<\/code> (listedeki \u00f6\u011fe say\u0131s\u0131)<\/p>\n<p>*   <strong>Bir listedeki t\u00fcm \u00f6\u011feleri alma:<\/strong><\/p>\n<pre><code class=\"language-\">lrange mylist 0 -1<\/code><\/pre>\n<p>    Yan\u0131t:<\/p>\n<pre><code class=\"language-\">1) \"item3\"\n    2) \"item2\"\n    3) \"item1\"<\/code><\/pre>\n<p>*   <strong>T\u00fcm anahtarlar\u0131 listeleme (dikkatli kullan\u0131n, \u00fcretimde yava\u015f olabilir):<\/strong><\/p>\n<pre><code class=\"language-\">keys *<\/code><\/pre>\n<p>    Yan\u0131t:<\/p>\n<pre><code class=\"language-\">1) \"mylist\"\n    2) \"mykey\"<\/code><\/pre>\n<p>*   <strong>TTL (Time To Live) ile anahtar ayarlama (belirli bir s\u00fcre sonra otomatik silme):<\/strong><\/p>\n<pre><code class=\"language-\">setex temporary_key 10 \"This will expire in 10 seconds\"<\/code><\/pre>\n<p>    Yan\u0131t: <code>OK<\/code><\/p>\n<p>*   <strong>Redis CLI&#8217;dan \u00e7\u0131kma:<\/strong><\/p>\n<pre><code class=\"language-\">quit<\/code><\/pre>\n<p>Bu komutlar, Redis&#8217;in temel veri yap\u0131lar\u0131 ve i\u015flevselli\u011fi hakk\u0131nda size bir fikir verecektir. Uygulamalar\u0131n\u0131zda Redis&#8217;i kullanmak i\u00e7in \u00e7e\u015fitli programlama dilleri i\u00e7in mevcut olan Redis istemci k\u00fct\u00fcphanelerini (\u00f6rne\u011fin, Python i\u00e7in <code>redis-py<\/code>, Node.js i\u00e7in <code>ioredis<\/code>, PHP i\u00e7in <code>phpredis<\/code> vb.) kullanman\u0131z gerekecektir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Redis&#8217;i Ubuntu 20.04 sunucunuza nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve g\u00fcvenli\u011fini nas\u0131l sa\u011flayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele ald\u0131k. Hem APT paket y\u00f6neticisi ile h\u0131zl\u0131 ve kolay kurulumu hem de kaynak koddan derleme ile daha esnek bir kurulumu inceledik. Ayr\u0131ca, <code>redis.conf<\/code> dosyas\u0131ndaki temel yap\u0131land\u0131rma ayarlar\u0131n\u0131 ve \u00f6zellikle \u00fcretim ortamlar\u0131nda Redis&#8217;in g\u00fcvenli\u011fini sa\u011flamak i\u00e7in al\u0131nmas\u0131 gereken kritik \u00f6nlemleri detayland\u0131rd\u0131k.<\/p>\n<p>Redis&#8217;in y\u00fcksek performansl\u0131 yap\u0131s\u0131, onu \u00f6nbellekleme, oturum y\u00f6netimi, mesajla\u015fma ve ger\u00e7ek zamanl\u0131 veri i\u015fleme gibi bir\u00e7ok modern uygulama senaryosu i\u00e7in vazge\u00e7ilmez k\u0131lar. Ancak bu g\u00fc\u00e7l\u00fc arac\u0131 kullan\u0131rken, g\u00fcvenlik \u00f6nlemlerini asla g\u00f6z ard\u0131 etmemek hayati \u00f6nem ta\u015f\u0131r. Parola korumas\u0131, a\u011f eri\u015fimini k\u0131s\u0131tlama, g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131 ve d\u00fczenli g\u00fcncellemeler, Redis da\u011f\u0131t\u0131m\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in temel ad\u0131mlard\u0131r.<\/p>\n<p>Redis&#8217;i ba\u015far\u0131yla kurup g\u00fcvenli\u011fini sa\u011flad\u0131ktan sonra, art\u0131k uygulamalar\u0131n\u0131zda bu g\u00fc\u00e7l\u00fc bellek i\u00e7i veri deposunu kullanmaya haz\u0131rs\u0131n\u0131z. Bir sonraki ad\u0131m, tercih etti\u011finiz programlama dili i\u00e7in Redis istemci k\u00fct\u00fcphanesini entegre etmek ve Redis&#8217;in sundu\u011fu zengin veri yap\u0131lar\u0131n\u0131 ke\u015ffetmek olacakt\u0131r. Unutmay\u0131n, Redis&#8217;in g\u00fcc\u00fc, do\u011fru yap\u0131land\u0131rma ve g\u00fcvenlik uygulamalar\u0131yla birle\u015fti\u011finde ortaya \u00e7\u0131kar.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Redis&#8217;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\nVeri depolama ve \u00f6nbellekleme \u00e7\u00f6z\u00fcmleri, modern web uygulama","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-38926","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>Redis&#039;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - 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\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Redis&#039;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\" \/>\n<meta property=\"og:description\" content=\"Redis&#039;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] Veri depolama ve \u00f6nbellekleme \u00e7\u00f6z\u00fcmleri, modern web uygulama\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-10T16:40:48+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=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Redis&#8217;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\",\"datePublished\":\"2026-02-10T16:40:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/\"},\"wordCount\":3006,\"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\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/\",\"name\":\"Redis'i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-10T16:40:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Redis&#8217;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\"}]},{\"@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'i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - 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\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/","og_locale":"tr_TR","og_type":"article","og_title":"Redis'i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]","og_description":"Redis'i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] Veri depolama ve \u00f6nbellekleme \u00e7\u00f6z\u00fcmleri, modern web uygulama","og_url":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-10T16:40:48+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Redis&#8217;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]","datePublished":"2026-02-10T16:40:48+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/"},"wordCount":3006,"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\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/","url":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/","name":"Redis'i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-10T16:40:48+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-20-04-uzerine-kurma-ve-guvenligini-saglama-hizli-baslangic\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Redis&#8217;i Ubuntu 20.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]"}]},{"@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\/38926","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=38926"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38926\/revisions"}],"predecessor-version":[{"id":38927,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38926\/revisions\/38927"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}