{"id":32686,"date":"2025-10-24T20:41:16","date_gmt":"2025-10-24T17:41:16","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32686"},"modified":"2025-10-24T20:41:16","modified_gmt":"2025-10-24T17:41:16","slug":"redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/","title":{"rendered":"Redis&#8217;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama"},"content":{"rendered":"<p><body><\/p>\n<h2>Redis&#8217;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama<\/h2>\n<p>Redis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Anahtar-de\u011fer depolama sistemi olarak bilinse de, asl\u0131nda dizeler, hash&#8217;ler, listeler, k\u00fcmeler, s\u0131ral\u0131 k\u00fcmeler, bit e\u015flemler, HyperLogLog&#8217;lar ve co\u011frafi dizinler gibi \u00e7e\u015fitli veri yap\u0131lar\u0131n\u0131 destekler. Ola\u011fan\u00fcst\u00fc h\u0131z\u0131, esnekli\u011fi ve geni\u015f kullan\u0131m alanlar\u0131 sayesinde \u00f6nbellekleme, oturum y\u00f6netimi, ger\u00e7ek zamanl\u0131 analiz, mesajla\u015fma kuyruklar\u0131 ve oyun liderlik tablolar\u0131 gibi bir\u00e7ok modern uygulama i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir. Verileri do\u011frudan RAM&#8217;de tutmas\u0131, disk tabanl\u0131 veritabanlar\u0131na k\u0131yasla milisaniyelerden daha k\u0131sa yan\u0131t s\u00fcreleri sunar.<\/p>\n<p>Bu makalede, Redis&#8217;i Ubuntu 22.04 sunucunuza nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rmalar\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 ve en \u00f6nemlisi, \u00fcretim ortamlar\u0131nda Redis kurulumunuzun g\u00fcvenli\u011fini nas\u0131l sa\u011flayaca\u011f\u0131n\u0131z\u0131 ayr\u0131nt\u0131l\u0131 olarak ele alaca\u011f\u0131z. Redis&#8217;in sundu\u011fu performans avantajlar\u0131ndan tam olarak yararlan\u0131rken, potansiyel g\u00fcvenlik risklerini en aza indirmek i\u00e7in gerekli ad\u0131mlar\u0131 ad\u0131m ad\u0131m uygulayaca\u011f\u0131z.<\/p>\n<h3>Giri\u015f: Redis Neden \u00d6nemli?<\/h3>\n<p>Redis&#8217;in pop\u00fclaritesi, sadece h\u0131z\u0131yla s\u0131n\u0131rl\u0131 de\u011fildir. Atomik i\u015flemler, yay\u0131nlama\/abone olma (pub\/sub) yetenekleri, Lua betikleri ve i\u015flem deste\u011fi gibi \u00f6zellikler, onu basit bir anahtar-de\u011fer deposundan \u00e7ok daha fazlas\u0131 yapar. Modern mikro hizmet mimarilerinde, da\u011f\u0131t\u0131k sistemlerde ve y\u00fcksek performans gerektiren uygulamalarda merkezi bir rol oynar. Ubuntu 22.04 ise, kararl\u0131l\u0131\u011f\u0131, geni\u015f topluluk deste\u011fi ve g\u00fcncel paketleriyle sunucu ortamlar\u0131 i\u00e7in pop\u00fcler ve g\u00fcvenilir bir se\u00e7imdir. Bu kombinasyon, g\u00fc\u00e7l\u00fc ve g\u00fcvenli bir Redis da\u011f\u0131t\u0131m\u0131 i\u00e7in ideal bir temel olu\u015fturur.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki maddelerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olun:<\/p>\n<p>*   Ubuntu 22.04 i\u015fletim sistemine sahip bir sunucu.<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*   Sunucunun internet eri\u015fimi olmal\u0131.<\/p>\n<h2>Redis Kurulumu<\/h2>\n<p>Redis&#8217;i Ubuntu 22.04 \u00fczerine kurmak olduk\u00e7a basittir. Ubuntu&#8217;nun resmi APT depolar\u0131nda Redis paketleri bulunur, bu da kurulumu kolay ve g\u00fcvenilir hale getirir.<\/p>\n<h3>Sistem G\u00fcncellemesi<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce sistem paket listelerinizi g\u00fcncellemek ve mevcut paketleri y\u00fckseltmek her zaman iyi bir uygulamad\u0131r. Bu, en son g\u00fcvenlik yamalar\u0131na sahip olman\u0131z\u0131 ve olas\u0131 uyumluluk sorunlar\u0131n\u0131 \u00f6nlemenizi sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Bu komutlar, paket listelerini senkronize edecek ve ard\u0131ndan t\u00fcm y\u00fckseltilebilir paketleri onay istemeden g\u00fcncelleyecektir.<\/p>\n<h3>Redis&#8217;i APT Paket Y\u00f6neticisi ile Kurma<\/h3>\n<p>Sisteminiz g\u00fcncelledikten sonra Redis sunucusunu a\u015fa\u011f\u0131daki komutla kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt install redis-server -y<\/code><\/pre>\n<p>Bu komut, Redis sunucusunu ve gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fckleyecektir. Kurulum tamamland\u0131ktan sonra Redis servisi otomatik olarak ba\u015flat\u0131lacak ve sistem a\u00e7\u0131l\u0131\u015f\u0131nda otomatik olarak \u00e7al\u0131\u015facak \u015fekilde yap\u0131land\u0131r\u0131lacakt\u0131r.<\/p>\n<p>Kurulumun ba\u015far\u0131l\u0131 oldu\u011funu ve Redis servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">systemctl status redis<\/code><\/pre>\n<p>Bu komut, Redis servisinin durumunu g\u00f6sterecektir. \u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz.<\/p>\n<p>Redis&#8217;e ba\u011flan\u0131p basit bir komut g\u00f6ndererek de \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 test edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">redis-cli ping<\/code><\/pre>\n<p>E\u011fer Redis d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131yorsa, \u00e7\u0131kt\u0131 olarak <code>PONG<\/code> g\u00f6rmelisiniz. Bu, Redis sunucunuzun istemci ba\u011flant\u0131lar\u0131n\u0131 kabul etti\u011fini g\u00f6sterir.<\/p>\n<h3>Redis Hizmetini Y\u00f6netme<\/h3>\n<p>Redis bir sistem hizmeti olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, onu <code>systemctl<\/code> komutuyla kolayca y\u00f6netebilirsiniz.<\/p>\n<p>*   <strong>Redis hizmetini ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl start redis<\/code><\/pre>\n<p>*   <strong>Redis hizmetini durdurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop redis<\/code><\/pre>\n<p>*   <strong>Redis hizmetini yeniden ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart redis<\/code><\/pre>\n<p>*   <strong>Sistem a\u00e7\u0131l\u0131\u015f\u0131nda Redis&#8217;i otomatik ba\u015flatmay\u0131 etkinle\u015ftirme (varsay\u0131lan olarak etkindir):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable redis<\/code><\/pre>\n<p>*   <strong>Sistem a\u00e7\u0131l\u0131\u015f\u0131nda Redis&#8217;i otomatik ba\u015flatmay\u0131 devre d\u0131\u015f\u0131 b\u0131rakma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl disable redis<\/code><\/pre>\n<p>*   <strong>Redis hizmetinin durumunu kontrol etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">systemctl status redis<\/code><\/pre>\n<p>Bu komutlar, Redis sunucunuzun ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc y\u00f6netmek i\u00e7in temel ara\u00e7lard\u0131r.<\/p>\n<h2>Redis Temel Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Redis&#8217;in davran\u0131\u015f\u0131n\u0131 \u00f6zelle\u015ftirmek ve performans\u0131n\u0131 optimize etmek i\u00e7in yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemeniz gerekir. Redis&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 Ubuntu&#8217;da <code>\/etc\/redis\/redis.conf<\/code> konumundad\u0131r.<\/p>\n<h3>Yap\u0131land\u0131rma Dosyas\u0131na Genel Bak\u0131\u015f<\/h3>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/redis\/redis.conf<\/code><\/pre>\n<p>Bu dosya, Redis&#8217;in nas\u0131l \u00e7al\u0131\u015faca\u011f\u0131na dair bir\u00e7ok y\u00f6nerge i\u00e7erir. \u00c7o\u011fu sat\u0131r, varsay\u0131lan ayarlar\u0131 a\u00e7\u0131klayan yorumlarla (<code>#<\/code> ile ba\u015flayan sat\u0131rlar) birlikte gelir. G\u00fcvenlik ve performans i\u00e7in en \u00f6nemli ayarlar\u0131 g\u00f6zden ge\u00e7irece\u011fiz.<\/p>\n<h3>Bind Adresi Yap\u0131land\u0131rmas\u0131<\/h3>\n<p><code>bind<\/code> y\u00f6nergesi, Redis sunucusunun hangi a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 dinleyece\u011fini belirtir. Varsay\u0131lan olarak, Redis yaln\u0131zca yerel makineden gelen ba\u011flant\u0131lar\u0131 kabul eder.<\/p>\n<pre><code class=\"language-conf\"># If you want to listen for connections from other computers, you should edit\n<h2>the \"bind\" configuration directive in redis.conf. For example, if you want<\/h2>\n<h2>Redis to listen on all interfaces, you can use:<\/h2>\n<h2># bind 0.0.0.0<\/h2>\n<h2># Or you can bind to multiple interfaces:<\/h2>\n<h2># bind 192.168.1.1 10.0.0.1<\/h2>\n<h2># By default Redis listens for connections from all the network interfaces<\/h2>\n<h2>available on the server. It is possible to specify multiple interfaces.<\/h2>\n<h2># The default is:<\/h2>\nbind 127.0.0.1 -::1<\/code><\/pre>\n<p>*   <code>bind 127.0.0.1 -::1<\/code>: Bu varsay\u0131lan ayar, Redis&#8217;in yaln\u0131zca yerel IPv4 (<code>127.0.0.1<\/code>) ve IPv6 (<code>-::1<\/code>) aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flar. <strong>Bu, g\u00fcvenlik i\u00e7in \u00e7ok \u00f6nemlidir ve genellikle de\u011fi\u015ftirilmemelidir.<\/strong> Redis sunucunuzun yaln\u0131zca yerel uygulamalar taraf\u0131ndan kullan\u0131lmas\u0131 gerekiyorsa, bu ayar\u0131 oldu\u011fu gibi b\u0131rak\u0131n.<br \/>\n*   <strong>UYARI:<\/strong> <code>bind 0.0.0.0<\/code> olarak de\u011fi\u015ftirmek, Redis&#8217;in t\u00fcm mevcut a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 dinlemesine neden olur. <strong>Bu, Redis sunucunuzu internete veya yerel a\u011f\u0131n\u0131zdaki herkese a\u00e7\u0131k hale getirir ve ciddi bir g\u00fcvenlik riski olu\u015fturur.<\/strong> Uzaktan eri\u015fim gerekiyorsa, bunu g\u00fcvenlik duvar\u0131 kurallar\u0131, SSH t\u00fcnelleme veya VPN gibi daha g\u00fcvenli y\u00f6ntemlerle yapmal\u0131s\u0131n\u0131z. Bu konuya g\u00fcvenlik b\u00f6l\u00fcm\u00fcnde daha detayl\u0131 de\u011finece\u011fiz.<\/p>\n<h3>Port Yap\u0131land\u0131rmas\u0131<\/h3>\n<p><code>port<\/code> y\u00f6nergesi, Redis sunucusunun hangi TCP portunu dinleyece\u011fini belirler. Varsay\u0131lan port <code>6379<\/code>&#8216;dur.<\/p>\n<pre><code class=\"language-conf\">port 6379<\/code><\/pre>\n<p>Bu portu de\u011fi\u015ftirmek, &#8220;security by obscurity&#8221; (gizleyerek g\u00fcvenlik sa\u011flama) olarak bilinen \u00e7ok zay\u0131f bir g\u00fcvenlik \u00f6nlemi olsa da, otomatik taray\u0131c\u0131lar\u0131 ve botlar\u0131 cayd\u0131rmaya yard\u0131mc\u0131 olabilir. Ancak bu, ger\u00e7ek bir g\u00fcvenlik katman\u0131 de\u011fildir ve g\u00fc\u00e7l\u00fc kimlik do\u011frulama ile g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n yerini almaz.<\/p>\n<h3>Veritaban\u0131 Say\u0131s\u0131<\/h3>\n<p><code>databases<\/code> y\u00f6nergesi, Redis&#8217;in ka\u00e7 adet veritaban\u0131 (0&#8217;dan ba\u015flayarak indekslenir) sa\u011flayaca\u011f\u0131n\u0131 belirler. Varsay\u0131lan de\u011fer <code>16<\/code>&#8216;d\u0131r.<\/p>\n<pre><code class=\"language-conf\">databases 16<\/code><\/pre>\n<p>\u00c7o\u011fu uygulama i\u00e7in tek bir veritaban\u0131 yeterlidir, ancak farkl\u0131 veri k\u00fcmelerini izole etmek isterseniz bu say\u0131y\u0131 art\u0131rabilirsiniz.<\/p>\n<h3>Snapshotting (Veri Kal\u0131c\u0131l\u0131\u011f\u0131) Yap\u0131land\u0131rmas\u0131 (RDB)<\/h3>\n<p>Redis, verileri bellek i\u00e7i tuttu\u011fu i\u00e7in, sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda verilerin kaybolmamas\u0131 i\u00e7in kal\u0131c\u0131l\u0131k mekanizmalar\u0131na ihtiya\u00e7 duyar. Redis, iki ana kal\u0131c\u0131l\u0131k mekanizmas\u0131 sunar: RDB (Redis Database) ve AOF (Append Only File).<\/p>\n<p>RDB, belirli aral\u0131klarla veritaban\u0131n\u0131n anl\u0131k g\u00f6r\u00fcnt\u00fclerini (snapshot) disk \u00fczerine kaydeder.<\/p>\n<pre><code class=\"language-conf\">save 900 1      # 900 saniye (15 dakika) i\u00e7inde en az 1 anahtar de\u011fi\u015firse kaydet\nsave 300 10     # 300 saniye (5 dakika) i\u00e7inde en az 10 anahtar de\u011fi\u015firse kaydet\nsave 60 10000   # 60 saniye i\u00e7inde en az 10000 anahtar de\u011fi\u015firse kaydet<\/code><\/pre>\n<p>Bu ayarlar, belirtilen ko\u015fullar kar\u015f\u0131land\u0131\u011f\u0131nda Redis&#8217;in <code>dump.rdb<\/code> adl\u0131 bir dosya olu\u015fturarak veritaban\u0131n\u0131n anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc kaydetmesini sa\u011flar.<\/p>\n<p>*   <code>dbfilename dump.rdb<\/code>: RDB dosyas\u0131n\u0131n ad\u0131n\u0131 belirler.<br \/>\n*   <code>dir .\/<\/code>: RDB dosyalar\u0131n\u0131n kaydedilece\u011fi dizini belirler. Ubuntu&#8217;da varsay\u0131lan olarak <code>\/var\/lib\/redis<\/code> dizini kullan\u0131l\u0131r. Bu, <code>systemd<\/code> servisi taraf\u0131ndan yap\u0131land\u0131r\u0131l\u0131r ve genellikle yap\u0131land\u0131rma dosyas\u0131nda <code>dir<\/code> direktifini de\u011fi\u015ftirmeniz gerekmez.<br \/>\n*   <code>stop-writes-on-bgsave-error yes<\/code>: Arka planda kaydetme i\u015flemi ba\u015far\u0131s\u0131z olursa Redis&#8217;in yazma i\u015flemlerini durdurup durdurmayaca\u011f\u0131n\u0131 belirler. <code>yes<\/code> olarak b\u0131rak\u0131lmas\u0131 \u00f6nerilir.<br \/>\n*   <code>rdbcompression yes<\/code>: RDB dosyalar\u0131n\u0131 s\u0131k\u0131\u015ft\u0131r\u0131p s\u0131k\u0131\u015ft\u0131rmayaca\u011f\u0131n\u0131 belirler. <code>yes<\/code> olarak b\u0131rak\u0131lmas\u0131 disk alan\u0131ndan tasarruf sa\u011flar.<br \/>\n*   <code>rdbchecksum yes<\/code>: RDB dosyalar\u0131na sa\u011flama toplam\u0131 ekleyip eklemeyece\u011fini belirler. Veri b\u00fct\u00fcnl\u00fc\u011f\u00fc i\u00e7in <code>yes<\/code> olarak b\u0131rak\u0131lmas\u0131 \u00f6nemlidir.<\/p>\n<h3>AOF Kal\u0131c\u0131l\u0131\u011f\u0131 Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>AOF (Append Only File), Redis&#8217;in ald\u0131\u011f\u0131 her yazma komutunu bir log dosyas\u0131na kaydeder. Bu, RDB&#8217;ye g\u00f6re daha y\u00fcksek bir veri kal\u0131c\u0131l\u0131\u011f\u0131 seviyesi sa\u011flar, \u00e7\u00fcnk\u00fc veri kayb\u0131 yaln\u0131zca son <code>fsync<\/code> i\u015flemine kadar olan verilerle s\u0131n\u0131rl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-conf\">appendonly no<\/code><\/pre>\n<p>AOF&#8217;yi etkinle\u015ftirmek i\u00e7in bu sat\u0131r\u0131 <code>yes<\/code> olarak de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-conf\">appendonly yes<\/code><\/pre>\n<p>Di\u011fer \u00f6nemli AOF ayarlar\u0131:<\/p>\n<p>*   <code>appendfilename \"appendonly.aof\"<\/code>: AOF dosyas\u0131n\u0131n ad\u0131n\u0131 belirler.<br \/>\n*   <code>appendfsync everysec<\/code>: AOF dosyas\u0131n\u0131n diske ne s\u0131kl\u0131kla senkronize edilece\u011fini belirler.<br \/>\n    *   <code>always<\/code>: Her yazma i\u015fleminde senkronize eder (en g\u00fcvenli, en yava\u015f).<br \/>\n    *   <code>everysec<\/code>: Her saniye senkronize eder (iyi bir denge).<br \/>\n    *   <code>no<\/code>: \u0130\u015fletim sisteminin takdirine b\u0131rak\u0131r (en h\u0131zl\u0131, en az g\u00fcvenli).<br \/>\n    <code>everysec<\/code> \u00e7o\u011fu durum i\u00e7in iyi bir se\u00e7imdir.<br \/>\n*   <code>no-appendfsync-on-rewrite no<\/code>: AOF yeniden yazma i\u015flemi s\u0131ras\u0131nda <code>fsync<\/code> \u00e7a\u011fr\u0131lar\u0131n\u0131n engellenip engellenmeyece\u011fini belirler. <code>no<\/code> olarak b\u0131rak\u0131lmas\u0131 \u00f6nerilir.<br \/>\n*   <code>auto-aof-rewrite-percentage 100<\/code>: AOF dosyas\u0131n\u0131n boyutunun ne kadar artt\u0131\u011f\u0131nda otomatik yeniden yazma i\u015fleminin tetiklenece\u011fini belirler.<br \/>\n*   <code>auto-aof-rewrite-min-size 64mb<\/code>: AOF dosyas\u0131n\u0131n otomatik yeniden yazma i\u015fleminin tetiklenmesi i\u00e7in ula\u015fmas\u0131 gereken minimum boyutu belirler.<\/p>\n<p>Hem RDB hem de AOF&#8217;yi ayn\u0131 anda kullanabilirsiniz. Bu, en y\u00fcksek veri kal\u0131c\u0131l\u0131\u011f\u0131 seviyesini sa\u011flar.<\/p>\n<h3>Max Memory Limit<\/h3>\n<p>Redis bellek i\u00e7i bir veritaban\u0131 oldu\u011fu i\u00e7in, sisteminizdeki belle\u011fi t\u00fcketebilir. <code>maxmemory<\/code> y\u00f6nergesi, Redis&#8217;in kullanabilece\u011fi maksimum bellek miktar\u0131n\u0131 s\u0131n\u0131rlar.<\/p>\n<pre><code class=\"language-conf\"># maxmemory <bytes><\/code><\/pre>\n<p>\u00d6rne\u011fin, Redis&#8217;in 256MB&#8217;dan fazla bellek kullanmas\u0131n\u0131 istemiyorsan\u0131z:<\/p>\n<pre><code class=\"language-conf\">maxmemory 256mb<\/code><\/pre>\n<p><code>maxmemory-policy<\/code> y\u00f6nergesi, <code>maxmemory<\/code> s\u0131n\u0131r\u0131na ula\u015f\u0131ld\u0131\u011f\u0131nda Redis&#8217;in hangi anahtarlar\u0131 silece\u011fini belirler:<\/p>\n<pre><code class=\"language-conf\">maxmemory-policy noeviction<\/code><\/pre>\n<p>Yayg\u0131n politikalar \u015funlard\u0131r:<\/p>\n<p>*   <code>noeviction<\/code>: Bellek s\u0131n\u0131r\u0131na ula\u015f\u0131ld\u0131\u011f\u0131nda yazma i\u015flemlerini reddeder.<br \/>\n*   <code>allkeys-lru<\/code>: Son kullan\u0131lan anahtarlar aras\u0131nda en az kullan\u0131lanlar\u0131 siler.<br \/>\n*   <code>volatile-lru<\/code>: Yaln\u0131zca TTL (time-to-live) ayarlanm\u0131\u015f anahtarlar aras\u0131nda en az kullan\u0131lanlar\u0131 siler.<br \/>\n*   <code>allkeys-random<\/code>: Rastgele anahtarlar\u0131 siler.<br \/>\n*   <code>volatile-random<\/code>: Yaln\u0131zca TTL ayarlanm\u0131\u015f anahtarlar aras\u0131nda rastgele siler.<br \/>\n*   <code>allkeys-ttl<\/code>: TTL&#8217;si en yak\u0131n olan anahtarlar\u0131 siler.<br \/>\n*   <code>volatile-ttl<\/code>: Yaln\u0131zca TTL ayarlanm\u0131\u015f anahtarlar aras\u0131nda TTL&#8217;si en yak\u0131n olanlar\u0131 siler.<\/p>\n<p>Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re uygun bir politika se\u00e7melisiniz. Genellikle, \u00f6nbellekleme senaryolar\u0131 i\u00e7in <code>allkeys-lru<\/code> veya <code>volatile-lru<\/code> tercih edilirken, kritik veriler i\u00e7in <code>noeviction<\/code> daha g\u00fcvenli olabilir.<\/p>\n<h3>Di\u011fer \u00d6nemli Yap\u0131land\u0131rma Ayarlar\u0131<\/h3>\n<p>*   <code>logfile \/var\/log\/redis\/redis-server.log<\/code>: Redis&#8217;in loglar\u0131n\u0131 yazaca\u011f\u0131 dosyan\u0131n yolunu belirler. Bu dosyay\u0131 d\u00fczenli olarak kontrol etmek, Redis sunucunuzdaki sorunlar\u0131 tespit etmek i\u00e7in \u00f6nemlidir.<br \/>\n*   <code>daemonize yes<\/code>: Redis&#8217;in bir arka plan s\u00fcreci olarak \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmayaca\u011f\u0131n\u0131 belirler. <code>systemd<\/code> ile y\u00f6netildi\u011finde bu ayar\u0131n genellikle <code>no<\/code> olmas\u0131 beklenir, \u00e7\u00fcnk\u00fc <code>systemd<\/code> kendi ba\u015f\u0131na arka plan s\u00fcreci y\u00f6netimini sa\u011flar. Ancak Ubuntu&#8217;daki varsay\u0131lan kurulumda <code>redis-server.service<\/code> dosyas\u0131 genellikle Redis&#8217;in <code>daemonize yes<\/code> olarak \u00e7al\u0131\u015fmas\u0131n\u0131 bekler. <code>systemctl status redis<\/code> \u00e7\u0131kt\u0131s\u0131na g\u00f6re bu ayar\u0131 kontrol etmek faydal\u0131d\u0131r.<br \/>\n*   <code>supervised systemd<\/code>: Redis&#8217;in bir <code>systemd<\/code> hizmeti olarak denetlendi\u011fini belirtir. Bu, <code>systemd<\/code>&#8216;nin Redis s\u00fcrecini do\u011fru bir \u015fekilde y\u00f6netmesini sa\u011flar.<\/p>\n<h3>Yap\u0131land\u0131rma De\u011fi\u015fikliklerini Uygulama<\/h3>\n<p><code>\/etc\/redis\/redis.conf<\/code> dosyas\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin ge\u00e7erli olmas\u0131 i\u00e7in Redis hizmetini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart redis<\/code><\/pre>\n<p>Herhangi bir sorun ya\u015farsan\u0131z, <code>systemctl status redis<\/code> komutunu ve Redis log dosyas\u0131n\u0131 (<code>\/var\/log\/redis\/redis-server.log<\/code>) kontrol edin.<\/p>\n<h2>Redis G\u00fcvenli\u011fini Sa\u011flama<\/h2>\n<p>Redis, varsay\u0131lan olarak h\u0131zl\u0131 ve kullan\u0131m\u0131 kolay olacak \u015fekilde tasarlanm\u0131\u015ft\u0131r, ancak bu, g\u00fcvenlik konusunda baz\u0131 varsay\u0131lan zay\u0131fl\u0131klar anlam\u0131na gelebilir. \u00dcretim ortamlar\u0131nda Redis&#8217;i kullan\u0131rken g\u00fcvenlik \u00f6nlemlerini almak kritik \u00f6neme sahiptir. A\u00e7\u0131kta b\u0131rak\u0131lm\u0131\u015f bir Redis sunucusu, veri kayb\u0131na, veri s\u0131z\u0131nt\u0131s\u0131na veya sunucunuzun ele ge\u00e7irilmesine yol a\u00e7abilir.<\/p>\n<h3>Temel G\u00fcvenlik \u0130lkeleri<\/h3>\n<p>*   <strong>Asla Genel A\u011fa A\u00e7\u0131k B\u0131rakmay\u0131n:<\/strong> Redis&#8217;i internete do\u011frudan maruz b\u0131rakmaktan ka\u00e7\u0131n\u0131n. Bu en \u00f6nemli g\u00fcvenlik kural\u0131d\u0131r.<br \/>\n*   <strong>G\u00fc\u00e7l\u00fc Kimlik Do\u011frulama Kullan\u0131n:<\/strong> Her zaman bir \u015fifre (<code>requirepass<\/code>) belirleyin.<br \/>\n*   <strong>En Az Ayr\u0131cal\u0131k \u0130lkesi:<\/strong> Redis&#8217;e yaln\u0131zca ihtiyac\u0131 olanlara ve ihtiyac\u0131 oldu\u011fu kadar eri\u015fim izni verin.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 Kullan\u0131n:<\/strong> Redis portuna yaln\u0131zca g\u00fcvenilir IP adreslerinden eri\u015fime izin verin.<br \/>\n*   <strong>Tehlikeli Komutlar\u0131 Devre D\u0131\u015f\u0131 B\u0131rak\u0131n veya Yeniden Adland\u0131r\u0131n:<\/strong> <code>FLUSHALL<\/code>, <code>KEYS<\/code>, <code>CONFIG<\/code> gibi komutlar k\u00f6t\u00fcye kullan\u0131labilir.<br \/>\n*   <strong>G\u00fcncellemeleri Takip Edin:<\/strong> Redis ve i\u015fletim sisteminizi d\u00fczenli olarak g\u00fcncelleyin.<br \/>\n*   <strong>\u0130zleme ve Loglama:<\/strong> Redis loglar\u0131n\u0131 ve sistem metriklerini d\u00fczenli olarak izleyin.<\/p>\n<h3>Kimlik Do\u011frulama (AUTH) Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Redis&#8217;e eri\u015fimi \u015fifre ile korumak, al\u0131nmas\u0131 gereken en temel g\u00fcvenlik \u00f6nlemidir. <code>requirepass<\/code> y\u00f6nergesi ile bir \u015fifre belirleyebilirsiniz.<\/p>\n<p><code>\/etc\/redis\/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 yorumunu kald\u0131rarak g\u00fc\u00e7l\u00fc bir \u015fifre ile de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-conf\">requirepass sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code><\/pre>\n<p><strong>\u015eifreniz \u00e7ok g\u00fc\u00e7l\u00fc olmal\u0131 ve tahmin edilemez olmal\u0131d\u0131r.<\/strong> \u015eifre olu\u015fturmak i\u00e7in <code>openssl<\/code> gibi ara\u00e7lar\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">openssl rand 60 | openssl base64 -A<\/code><\/pre>\n<p>\u00d6rnek \u00e7\u0131kt\u0131: <code>sY0L+5sN\/yL2p4Q7fG7x5J9zP8mD6r1kH3o0qW8cT7vU6xI5jC4bA3dS2fE1gZ0yXwV<\/code><\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydedin ve Redis&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart redis<\/code><\/pre>\n<p>Art\u0131k Redis&#8217;e ba\u011flan\u0131rken \u015fifre sa\u011flaman\u0131z gerekecek:<\/p>\n<pre><code class=\"language-bash\">redis-cli -a sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code><\/pre>\n<p>Veya <code>redis-cli<\/code> i\u00e7ine girdikten sonra:<\/p>\n<pre><code class=\"language-bash\">redis-cli\nAUTH sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code><\/pre>\n<p>\u015eifresiz ba\u011flant\u0131 denerseniz, Redis <code>(error) NOAUTH Authentication required.<\/code> hatas\u0131 verecektir.<\/p>\n<h3>Bind Adresi K\u0131s\u0131tlamas\u0131 (Tekrar Vurgu)<\/h3>\n<p>Daha \u00f6nce de belirtildi\u011fi gibi, <code>bind<\/code> y\u00f6nergesi Redis&#8217;in dinleyece\u011fi IP adreslerini belirler. G\u00fcvenlik i\u00e7in, Redis&#8217;in yaln\u0131zca yerel aray\u00fczden (<code>127.0.0.1<\/code>) veya g\u00fcvenilir bir yerel a\u011f IP&#8217;sinden gelen ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flamal\u0131s\u0131n\u0131z.<\/p>\n<pre><code class=\"language-conf\">bind 127.0.0.1 -::1<\/code><\/pre>\n<p><strong>Asla <code>bind 0.0.0.0<\/code> kullanmay\u0131n<\/strong> \u00e7\u00fcnk\u00fc bu, Redis&#8217;i internetteki herkesin eri\u015fimine a\u00e7ar. E\u011fer uygulaman\u0131z Redis&#8217;e farkl\u0131 bir sunucudan eri\u015fmek zorundaysa, bu durumda:<\/p>\n<p>1.  <strong>G\u00fcvenlik Duvar\u0131 Kullan\u0131n:<\/strong> Yaln\u0131zca belirli, g\u00fcvenilir IP adreslerinden gelen ba\u011flant\u0131lara izin verin.<br \/>\n2.  <strong>SSH T\u00fcnelleme veya VPN Kullan\u0131n:<\/strong> Bu, g\u00fcvenli bir \u015fekilde uzaktan eri\u015fim sa\u011flaman\u0131n en iyi yoludur. Redis sunucusunun kendisi hala <code>127.0.0.1<\/code> adresini dinlerken, g\u00fcvenli bir t\u00fcnel \u00fczerinden eri\u015fim sa\u011flan\u0131r.<\/p>\n<h3>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h3>\n<p>Ubuntu&#8217;da UFW (Uncomplicated Firewall), g\u00fcvenlik duvar\u0131n\u0131z\u0131 y\u00f6netmek i\u00e7in basit bir aray\u00fcz sa\u011flar. Redis portu olan 6379&#8217;a yaln\u0131zca g\u00fcvenilir kaynaklardan eri\u015fime izin vermek i\u00e7in UFW&#8217;yi yap\u0131land\u0131rmal\u0131s\u0131n\u0131z.<\/p>\n<p>\u00d6ncelikle UFW&#8217;nin etkin oldu\u011fundan emin olun ve SSH eri\u015fimine izin verin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable\nsudo ufw allow OpenSSH<\/code><\/pre>\n<p>\u015eimdi Redis portuna eri\u015fimi k\u0131s\u0131tlayal\u0131m:<\/p>\n<p>*   <strong>Yaln\u0131zca yerel ana bilgisayardan (localhost) eri\u015fime izin ver:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from 127.0.0.1 to any port 6379<\/code><\/pre>\n<p>    Bu, Redis&#8217;in varsay\u0131lan <code>bind 127.0.0.1<\/code> ayar\u0131yla m\u00fckemmel bir \u015fekilde e\u015fle\u015fir.<\/p>\n<p>*   <strong>Belirli bir g\u00fcvenilir IP adresinden (\u00f6rne\u011fin, uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sunucu) eri\u015fime izin ver:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from <g\u00fcvenilir_ip_adresi> to any port 6379<\/code><\/pre>\n<p>    <code><g\u00fcvenilir_ip_adresi><\/code> yerine uygulaman\u0131z\u0131n veya ba\u015fka bir sunucunun IP adresini yaz\u0131n. <strong>Bu se\u00e7ene\u011fi yaln\u0131zca Redis&#8217;i <code>bind 0.0.0.0<\/code> olarak ayarlam\u0131\u015fsan\u0131z veya belirli bir a\u011f aray\u00fcz\u00fcn\u00fc dinliyorsan\u0131z ve o aray\u00fcz \u00fczerinden uzaktan eri\u015fim gerekiyorsa kullan\u0131n.<\/strong> Ancak yine de bu senaryoda bile SSH t\u00fcnelleme tercih edilmelidir.<\/p>\n<p>*   <strong>Redis portuna genel eri\u015fimi engelle (varsay\u0131lan olarak zaten engellenir, ancak a\u00e7\u0131k\u00e7a belirtmek isteyebilirsiniz):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw deny 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<h3>Yeniden Adland\u0131rma veya Devre D\u0131\u015f\u0131 B\u0131rakma Tehlikeli Komutlar<\/h3>\n<p>Redis, baz\u0131 g\u00fc\u00e7l\u00fc ancak potansiyel olarak tehlikeli komutlara sahiptir. K\u00f6t\u00fc niyetli bir kullan\u0131c\u0131 veya hatal\u0131 bir uygulama bu komutlar\u0131 kullanarak veri kayb\u0131na, bilgi s\u0131z\u0131nt\u0131s\u0131na veya hizmet reddine neden olabilir. Bu komutlar\u0131 yeniden adland\u0131rarak veya tamamen devre d\u0131\u015f\u0131 b\u0131rakarak g\u00fcvenli\u011fi art\u0131rabilirsiniz.<\/p>\n<p><code>\/etc\/redis\/redis.conf<\/code> dosyas\u0131nda <code>rename-command<\/code> y\u00f6nergesini kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/redis\/redis.conf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki komutlar\u0131 yeniden adland\u0131r\u0131n veya bo\u015f bir dizeyle devre d\u0131\u015f\u0131 b\u0131rak\u0131n:<\/p>\n<pre><code class=\"language-conf\"># Tehlikeli komutlar\u0131 devre d\u0131\u015f\u0131 b\u0131rakma (bo\u015f bir dizeyle yeniden adland\u0131rma)\nrename-command FLUSHALL \"\"\nrename-command FLUSHDB \"\"\nrename-command CONFIG \"\"\nrename-command KEYS \"\"\nrename-command DEBUG \"\"\nrename-command SHUTDOWN \"\"\n\n<h2>Alternatif olarak, daha az tahmin edilebilir bir isme yeniden adland\u0131rabilirsiniz<\/h2>\n<h2>rename-command FLUSHALL \"temizle_tum_veriler\"<\/h2>\n<h2>rename-command CONFIG \"yapilandirma_ayarlari\"<\/code><\/pre>\n<\/h2>\n<p>*   <code>FLUSHALL<\/code> ve <code>FLUSHDB<\/code>: T\u00fcm veritabanlar\u0131ndaki veya belirli bir veritaban\u0131ndaki t\u00fcm verileri siler.<br \/>\n<em>   <code>CONFIG<\/code>: Redis yap\u0131land\u0131rma dosyas\u0131na eri\u015fim sa\u011flar (okuma\/yazma). <code>CONFIG GET <\/em><\/code> ile \u015fifreler dahil hassas bilgiler s\u0131zd\u0131r\u0131labilir.<br \/>\n*   <code>KEYS<\/code>: Performans a\u00e7\u0131s\u0131ndan pahal\u0131 olabilir ve \u00e7ok b\u00fcy\u00fck veritabanlar\u0131nda hizmet reddine neden olabilir. Ayr\u0131ca anahtar isimlerini a\u00e7\u0131\u011fa \u00e7\u0131karabilir.<br \/>\n*   <code>DEBUG<\/code>: Hata ay\u0131klama ve potansiyel olarak sunucu \u00fczerinde yan etkiler olu\u015fturma yetene\u011fi sa\u011flar.<br \/>\n*   <code>SHUTDOWN<\/code>: Redis sunucusunu kapat\u0131r.<\/p>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra Redis&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart redis<\/code><\/pre>\n<h3>Redis Kullan\u0131c\u0131s\u0131 ve \u0130zinleri<\/h3>\n<p>Redis, varsay\u0131lan olarak <code>redis<\/code> adl\u0131 ayr\u0131cal\u0131ks\u0131z bir sistem kullan\u0131c\u0131s\u0131 alt\u0131nda \u00e7al\u0131\u015f\u0131r. Bu iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r, \u00e7\u00fcnk\u00fc Redis s\u00fcrecinin k\u00f6k (root) ayr\u0131cal\u0131klar\u0131yla \u00e7al\u0131\u015fmas\u0131n\u0131 \u00f6nler ve olas\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n sistemin geri kalan\u0131na yay\u0131lmas\u0131n\u0131 s\u0131n\u0131rlar.<\/p>\n<p>Redis veri dizininin (genellikle <code>\/var\/lib\/redis<\/code>) ve yap\u0131land\u0131rma dosyas\u0131n\u0131n (<code>\/etc\/redis\/redis.conf<\/code>) do\u011fru izinlere sahip oldu\u011fundan emin olun. Bu dizinler ve dosyalar yaln\u0131zca <code>redis<\/code> kullan\u0131c\u0131s\u0131 taraf\u0131ndan yaz\u0131labilir olmal\u0131 ve di\u011fer kullan\u0131c\u0131lar taraf\u0131ndan okunabilir olmal\u0131d\u0131r (hassas bilgiler i\u00e7ermeyen log dosyalar\u0131 hari\u00e7).<\/p>\n<pre><code class=\"language-bash\"># Veri dizininin sahibini ve grubunu kontrol edin\nsudo chown -R redis:redis \/var\/lib\/redis\n\n<h2>Veri dizininin izinlerini kontrol edin (yaln\u0131zca sahip yazabilir, di\u011ferleri okuyabilir)<\/h2>\nsudo chmod 755 \/var\/lib\/redis<\/code><\/pre>\n<p><code>redis.conf<\/code> dosyas\u0131 i\u00e7in genellikle <code>root<\/code> sahibi ve <code>644<\/code> (okuma) veya <code>640<\/code> (sahip okuma\/yazma, grup okuma) izinleri uygundur. Hassas bilgiler (\u015fifreler) i\u00e7erdi\u011finden, di\u011fer kullan\u0131c\u0131lar\u0131n yazma eri\u015fimi olmamal\u0131d\u0131r.<\/p>\n<h3>Loglama ve \u0130zleme<\/h3>\n<p>Redis loglar\u0131n\u0131 d\u00fczenli olarak kontrol etmek, anormal davran\u0131\u015flar\u0131 veya g\u00fcvenlik olaylar\u0131n\u0131 tespit etmek i\u00e7in hayati \u00f6neme sahiptir. Log dosyas\u0131 <code>\/var\/log\/redis\/redis-server.log<\/code> konumundad\u0131r.<\/p>\n<p>Loglar\u0131 ger\u00e7ek zamanl\u0131 olarak izlemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">tail -f \/var\/log\/redis\/redis-server.log<\/code><\/pre>\n<p>Ayr\u0131ca, Redis sunucunuzun performans\u0131n\u0131 ve durumunu izlemek i\u00e7in Prometheus ve Grafana gibi sistem izleme ara\u00e7lar\u0131n\u0131 kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn.<\/p>\n<h3>SSH T\u00fcnelleme ile Uzak Eri\u015fim (G\u00fcvenli Y\u00f6ntem)<\/h3>\n<p>E\u011fer uygulaman\u0131z Redis&#8217;e farkl\u0131 bir sunucudan eri\u015fmek zorundaysa ve Redis&#8217;i <code>127.0.0.1<\/code> adresine ba\u011fl\u0131 tutmak istiyorsan\u0131z, SSH t\u00fcnelleme g\u00fcvenli bir \u00e7\u00f6z\u00fcmd\u00fcr. Bu y\u00f6ntem, yerel makinenizdeki bir portu, uzak sunucudaki Redis portuna g\u00fcvenli bir SSH ba\u011flant\u0131s\u0131 \u00fczerinden y\u00f6nlendirir.<\/p>\n<p>Uzak sunucunuzda Redis&#8217;in <code>bind 127.0.0.1<\/code> olarak yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<\/p>\n<p>Yerel makinenizden a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">ssh -N -L 6379:127.0.0.1:6379 user@your_redis_server_ip<\/code><\/pre>\n<p>*   <code>-N<\/code>: Uzak komut \u00e7al\u0131\u015ft\u0131rmaz.<br \/>\n*   <code>-L 6379:127.0.0.1:6379<\/code>: Yerel makinenizdeki 6379 portunu, uzak sunucudaki 127.0.0.1 adresinin 6379 portuna y\u00f6nlendirir.<br \/>\n*   <code>user<\/code>: Uzak sunucudaki SSH kullan\u0131c\u0131 ad\u0131n\u0131z.<br \/>\n*   <code>your_redis_server_ip<\/code>: Redis sunucunuzun IP adresi.<\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, yerel makinenizde <code>redis-cli<\/code> veya uygulaman\u0131z, <code>localhost:6379<\/code> adresine ba\u011flanarak asl\u0131nda SSH t\u00fcneli \u00fczerinden uzak Redis sunucusuna g\u00fcvenli bir \u015fekilde eri\u015fecektir.<\/p>\n<pre><code class=\"language-bash\">redis-cli -a sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code><\/pre>\n<p>Bu ba\u011flant\u0131, SSH t\u00fcneli a\u00e7\u0131k oldu\u011fu s\u00fcrece ge\u00e7erli olacakt\u0131r.<\/p>\n<h2>Redis Kullan\u0131m\u0131 ve Test<\/h2>\n<p>Redis&#8217;i kurup g\u00fcvenli\u011fini sa\u011flad\u0131ktan sonra, temel kullan\u0131m\u0131n\u0131 ve performans\u0131n\u0131 test etmek isteyebilirsiniz.<\/p>\n<h3>Redis CLI ile Ba\u011flant\u0131<\/h3>\n<p>Redis istemcisi <code>redis-cli<\/code>, Redis sunucunuzla etkile\u015fim kurmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<\/p>\n<p>*   <strong>Yerel Redis&#8217;e \u015fifresiz ba\u011flanma (e\u011fer \u015fifre ayarlamad\u0131ysan\u0131z):<\/strong><\/p>\n<pre><code class=\"language-bash\">redis-cli<\/code><\/pre>\n<p>*   <strong>Yerel Redis&#8217;e \u015fifre ile ba\u011flanma:<\/strong><\/p>\n<pre><code class=\"language-bash\">redis-cli -a sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code><\/pre>\n<p>*   <strong>Uzak bir Redis sunucusuna (SSH t\u00fcneli \u00fczerinden veya g\u00fcvenli bir a\u011fda) ba\u011flanma:<\/strong><\/p>\n<pre><code class=\"language-bash\">redis-cli -h 127.0.0.1 -p 6379 -a sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code><\/pre>\n<p>    Bu komutta <code>-h<\/code> ile ana bilgisayar\u0131 (localhost veya uzak IP), <code>-p<\/code> ile portu ve <code>-a<\/code> ile \u015fifreyi belirtirsiniz.<\/p>\n<h3>Temel Redis Komutlar\u0131<\/h3>\n<p>Ba\u011fland\u0131ktan sonra baz\u0131 temel Redis komutlar\u0131n\u0131 deneyebilirsiniz:<\/p>\n<p>*   <strong>Dize (String) komutlar\u0131:<\/strong><\/p>\n<pre><code class=\"language-redis\">-cli\n    SET mykey \"Hello Redis\"\n    GET mykey<\/code><\/pre>\n<p>*   <strong>Liste (List) komutlar\u0131:<\/strong><\/p>\n<pre><code class=\"language-redis\">-cli\n    LPUSH mylist \"item1\"\n    RPUSH mylist \"item2\"\n    LRANGE mylist 0 -1<\/code><\/pre>\n<p>*   <strong>Hash (Hash) komutlar\u0131:<\/strong><\/p>\n<pre><code class=\"language-redis\">-cli\n    HSET myhash field1 \"value1\" field2 \"value2\"\n    HGET myhash field1\n    HGETALL myhash<\/code><\/pre>\n<p>*   <strong>K\u00fcme (Set) komutlar\u0131:<\/strong><\/p>\n<pre><code class=\"language-redis\">-cli\n    SADD myset \"member1\" \"member2\"\n    SMEMBERS myset<\/code><\/pre>\n<p>*   <strong>Zaman a\u015f\u0131m\u0131 (Expiration) komutlar\u0131:<\/strong><\/p>\n<pre><code class=\"language-redis\">-cli\n    SET myexpiringkey \"temporary data\" EX 60 # 60 saniye sonra silinecek\n    TTL myexpiringkey<\/code><\/pre>\n<p>*   <strong>Sunucu bilgileri:<\/strong><\/p>\n<pre><code class=\"language-redis\">-cli\n    INFO # Sunucu hakk\u0131nda kapsaml\u0131 bilgi verir\n    MONITOR # Ger\u00e7ek zamanl\u0131 olarak Redis'e gelen t\u00fcm komutlar\u0131 g\u00f6sterir (performans etkisi vard\u0131r, dikkatli kullan\u0131n)<\/code><\/pre>\n<h3>Performans Testi<\/h3>\n<p>Redis, performans\u0131 test etmek i\u00e7in <code>redis-benchmark<\/code> adl\u0131 yerle\u015fik bir araca sahiptir. Bu ara\u00e7, Redis sunucunuzun farkl\u0131 komutlar i\u00e7in ne kadar h\u0131zl\u0131 yan\u0131t verdi\u011fini \u00f6l\u00e7menize olanak tan\u0131r.<\/p>\n<pre><code class=\"language-bash\">redis-benchmark -c 100 -n 100000 -a sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code><\/pre>\n<p>*   <code>-c 100<\/code>: 100 e\u015fzamanl\u0131 ba\u011flant\u0131 kullan\u0131r.<br \/>\n*   <code>-n 100000<\/code>: Toplam 100.000 istek g\u00f6nderir.<br \/>\n*   <code>-a sizin_\u00e7ok_g\u00fc\u00e7l\u00fc_\u015fifreniz_buraya<\/code>: E\u011fer \u015fifre belirlediyseniz, bu parametre ile \u015fifreyi sa\u011flars\u0131n\u0131z.<\/p>\n<p>Bu komut, \u00e7e\u015fitli Redis komutlar\u0131 (SET, GET, LPUSH vb.) i\u00e7in istek\/saniye (requests per second) cinsinden sonu\u00e7lar g\u00f6sterecektir. Bu, Redis sunucunuzun y\u00fck alt\u0131nda nas\u0131l performans g\u00f6sterdi\u011fine dair iyi bir fikir verir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu kapsaml\u0131 rehberde, Redis&#8217;i Ubuntu 22.04 sunucunuza ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rma ayarlar\u0131n\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 ve en \u00f6nemlisi, \u00fcretim ortamlar\u0131nda Redis kurulumunuzun g\u00fcvenli\u011fini nas\u0131l sa\u011flayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. Redis&#8217;in bellek i\u00e7i veri yap\u0131s\u0131 deposu olarak sundu\u011fu e\u015fsiz h\u0131z ve esneklik, onu modern uygulamalar\u0131n vazge\u00e7ilmez bir bile\u015feni haline getirir. Ancak bu g\u00fcc\u00fcn, do\u011fru g\u00fcvenlik \u00f6nlemleri al\u0131nmadan kullan\u0131lmas\u0131 ciddi riskler ta\u015f\u0131yabilir.<\/p>\n<p>Kurulumun ard\u0131ndan, <code>requirepass<\/code> ile g\u00fc\u00e7l\u00fc bir \u015fifre belirlemek, <code>bind<\/code> y\u00f6nergesini yaln\u0131zca yerel eri\u015fime k\u0131s\u0131tlamak ve UFW g\u00fcvenlik duvar\u0131 kurallar\u0131 ile 6379 numaral\u0131 portu korumak, Redis sunucunuzu d\u0131\u015f tehditlere kar\u015f\u0131 koruman\u0131n temel ad\u0131mlar\u0131d\u0131r. Ayr\u0131ca, <code>FLUSHALL<\/code> ve <code>CONFIG<\/code> gibi tehlikeli komutlar\u0131 yeniden adland\u0131rmak veya devre d\u0131\u015f\u0131 b\u0131rakmak, olas\u0131 k\u00f6t\u00fcye kullan\u0131mlar\u0131 engellemek i\u00e7in ek bir g\u00fcvenlik katman\u0131 sa\u011flar. Uzaktan eri\u015fim gereksinimleri i\u00e7in SSH t\u00fcnelleme gibi g\u00fcvenli y\u00f6ntemlerin kullan\u0131lmas\u0131, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve gizlili\u011fini korumak a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir.<\/p>\n<p>Redis&#8217;in performans\u0131ndan tam olarak yararlan\u0131rken, veri kal\u0131c\u0131l\u0131\u011f\u0131 i\u00e7in RDB ve AOF mekanizmalar\u0131n\u0131 do\u011fru \u015fekilde yap\u0131land\u0131rmak ve <code>maxmemory<\/code> ayar\u0131 ile bellek kullan\u0131m\u0131n\u0131 kontrol alt\u0131nda tutmak da sunucunuzun kararl\u0131l\u0131\u011f\u0131 i\u00e7in \u00f6nemlidir. Son olarak, Redis loglar\u0131n\u0131 d\u00fczenli olarak izlemek ve sistem g\u00fcncellemelerini takip etmek, uzun vadeli g\u00fcvenlik ve performans s\u00fcreklili\u011fi i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<p>Bu ad\u0131mlar\u0131 uygulayarak, Ubuntu 22.04 \u00fczerinde g\u00fcvenli, kararl\u0131 ve y\u00fcksek performansl\u0131 bir Redis ortam\u0131 olu\u015fturmu\u015f olursunuz. Redis&#8217;in sundu\u011fu t\u00fcm avantajlardan faydalan\u0131rken, verilerinizin ve sisteminizin g\u00fcvende oldu\u011fundan emin olabilirsiniz. Gelecekte, Redis&#8217;in ileri d\u00fczey \u00f6zellikleri olan replikasyon (\u00e7o\u011faltma) ve k\u00fcmeleme (clustering) gibi konular\u0131 ara\u015ft\u0131rarak sisteminizin \u00f6l\u00e7eklenebilirli\u011fini ve dayan\u0131kl\u0131l\u0131\u011f\u0131n\u0131 daha da art\u0131rabilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Redis&#8217;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama\nRedis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Anahtar-de\u011fer depola","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-32686","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 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama - 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-22-04-uzerine-kurma-ve-guvenligini-saglama\/\" \/>\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 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama\" \/>\n<meta property=\"og:description\" content=\"Redis&#039;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama Redis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Anahtar-de\u011fer depola\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-24T17:41:16+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=\"21 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-22-04-uzerine-kurma-ve-guvenligini-saglama\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Redis&#8217;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama\",\"datePublished\":\"2025-10-24T17:41:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/\"},\"wordCount\":3466,\"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-22-04-uzerine-kurma-ve-guvenligini-saglama\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/\",\"name\":\"Redis'i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-24T17:41:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Redis&#8217;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama\"}]},{\"@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 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama - 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-22-04-uzerine-kurma-ve-guvenligini-saglama\/","og_locale":"tr_TR","og_type":"article","og_title":"Redis'i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama","og_description":"Redis'i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama Redis, a\u00e7\u0131k kaynakl\u0131, bellek i\u00e7i bir veri yap\u0131s\u0131 deposudur. Anahtar-de\u011fer depola","og_url":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-24T17:41:16+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Redis&#8217;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama","datePublished":"2025-10-24T17:41:16+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/"},"wordCount":3466,"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-22-04-uzerine-kurma-ve-guvenligini-saglama\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/","url":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/","name":"Redis'i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-24T17:41:16+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/redisi-ubuntu-22-04-uzerine-kurma-ve-guvenligini-saglama\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Redis&#8217;i Ubuntu 22.04 \u00dczerine Kurma ve G\u00fcvenli\u011fini Sa\u011flama"}]},{"@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\/32686","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=32686"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32686\/revisions"}],"predecessor-version":[{"id":32687,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32686\/revisions\/32687"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}