{"id":38938,"date":"2026-02-11T03:40:55","date_gmt":"2026-02-11T00:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38938"},"modified":"2026-02-11T03:40:55","modified_gmt":"2026-02-11T00:40:55","slug":"rediste-kumeleri-yonetmek-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/","title":{"rendered":"Redis&#8217;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Redis&#8217;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>Redis, y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131 bir bellek i\u00e7i veri yap\u0131s\u0131 deposudur. Anahtar-de\u011fer depolama modeline ek olarak, dizeler (strings), karmalar (hashes), listeler (lists), s\u0131ral\u0131 k\u00fcmeler (sorted sets) ve k\u00fcmeler (sets) gibi \u00e7e\u015fitli geli\u015fmi\u015f veri yap\u0131lar\u0131 sunar. Bu makalede, Redis&#8217;in en g\u00fc\u00e7l\u00fc ve esnek veri yap\u0131lar\u0131ndan biri olan k\u00fcmelere (Sets) odaklanaca\u011f\u0131z. K\u00fcmelerin ne oldu\u011funu, nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131, temel ve geli\u015fmi\u015f i\u015flemlerini, yayg\u0131n kullan\u0131m senaryolar\u0131n\u0131, performans ipu\u00e7lar\u0131n\u0131 ve en iyi uygulamalar\u0131 derinlemesine inceleyece\u011fiz.<\/p>\n<h3>Redis K\u00fcmeleri Nedir?<\/h3>\n<p>Redis k\u00fcmeleri, benzersiz ve s\u0131ras\u0131z elemanlardan olu\u015fan koleksiyonlard\u0131r. Matematikteki k\u00fcme teorisine benzer \u015fekilde \u00e7al\u0131\u015f\u0131rlar. Bir k\u00fcme i\u00e7indeki her eleman yaln\u0131zca bir kez bulunabilir ve elemanlar\u0131n eklenme s\u0131ras\u0131n\u0131n bir \u00f6nemi yoktur; k\u00fcmeler elemanlar\u0131n\u0131 belirli bir s\u0131rada tutmaz. Bu \u00f6zellikler, k\u00fcmeleri tekil \u00f6\u011feleri depolamak, \u00fcyelik kontrol\u00fc yapmak ve k\u00fcmeler aras\u0131 matematiksel i\u015flemler (birle\u015fim, kesi\u015fim, fark) ger\u00e7ekle\u015ftirmek i\u00e7in ideal hale getirir.<\/p>\n<p>K\u00fcmeler, genellikle bir uygulaman\u0131n &#8220;bir \u015feyi be\u011fenen kullan\u0131c\u0131lar&#8221;, &#8220;bir makaleye etiketlenmi\u015f anahtar kelimeler&#8221; veya &#8220;\u00e7evrimi\u00e7i olan kullan\u0131c\u0131 kimlikleri&#8221; gibi senaryolar\u0131nda kullan\u0131l\u0131r. H\u0131zl\u0131 ekleme, silme ve \u00fcyelik kontrol\u00fc yetenekleri sayesinde, Redis k\u00fcmeleri bir\u00e7ok modern uygulaman\u0131n temelini olu\u015fturur.<\/p>\n<h3>Temel K\u00fcme \u0130\u015flemleri<\/h3>\n<p>Redis k\u00fcmeleriyle \u00e7al\u0131\u015fmak i\u00e7in bir dizi komut mevcuttur. Bu komutlar, k\u00fcmelerin olu\u015fturulmas\u0131ndan eleman eklemeye, sorgulamaya ve silmeye kadar \u00e7e\u015fitli i\u015flevleri kapsar.<\/p>\n<h4>SADD: K\u00fcmelere Eleman Ekleme<\/h4>\n<p><code>SADD<\/code> komutu, belirtilen k\u00fcmelere bir veya daha fazla eleman eklemek i\u00e7in kullan\u0131l\u0131r. E\u011fer k\u00fcme mevcut de\u011filse, Redis otomatik olarak yeni bir k\u00fcme olu\u015fturur. Eklenen elemanlar zaten k\u00fcmede varsa, komut hi\u00e7bir \u015fey yapmaz ve eleman yinelenmez.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SADD key member [member ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SADD my_set \"apple\" \"banana\" \"orange\"\n<h2>(integer) 3<\/h2>\nSADD my_set \"banana\" \"grape\"\n<h2>(integer) 1 (Sadece \"grape\" eklendi, \"banana\" zaten vard\u0131)<\/code><\/pre>\n<\/h2>\n<h4>SMEMBERS: T\u00fcm K\u00fcme Elemanlar\u0131n\u0131 Listeleme<\/h4>\n<p><code>SMEMBERS<\/code> komutu, bir k\u00fcmedeki t\u00fcm elemanlar\u0131 d\u00f6nd\u00fcr\u00fcr. Elemanlar\u0131n s\u0131ras\u0131 garanti edilmez.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SMEMBERS key<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SMEMBERS my_set\n<h2>1) \"orange\"<\/h2>\n<h2>2) \"banana\"<\/h2>\n<h2>3) \"apple\"<\/h2>\n<h2>4) \"grape\"<\/code><\/pre>\n<\/h2>\n<h4>SISMEMBER: Eleman\u0131n K\u00fcmede Olup Olmad\u0131\u011f\u0131n\u0131 Kontrol Etme<\/h4>\n<p><code>SISMEMBER<\/code> komutu, belirtilen bir eleman\u0131n k\u00fcmenin bir \u00fcyesi olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Eleman k\u00fcmede varsa <code>1<\/code>, yoksa <code>0<\/code> d\u00f6nd\u00fcr\u00fcr. Bu i\u015flem \u00e7ok h\u0131zl\u0131d\u0131r (O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir), bu da k\u00fcmeleri \u00fcyelik kontrol\u00fc i\u00e7in m\u00fckemmel k\u0131lar.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SISMEMBER key member<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SISMEMBER my_set \"apple\"\n<h2>(integer) 1<\/h2>\nSISMEMBER my_set \"kiwi\"\n<h2>(integer) 0<\/code><\/pre>\n<\/h2>\n<h4>SREM: K\u00fcmeden Eleman Silme<\/h4>\n<p><code>SREM<\/code> komutu, belirtilen k\u00fcmeden bir veya daha fazla eleman\u0131 kald\u0131r\u0131r. E\u011fer eleman k\u00fcmede yoksa, komut hi\u00e7bir \u015fey yapmaz.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SREM key member [member ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SREM my_set \"banana\" \"grape\"\n<h2>(integer) 2<\/h2>\nSMEMBERS my_set\n<h2>1) \"orange\"<\/h2>\n<h2>2) \"apple\"<\/code><\/pre>\n<\/h2>\n<h4>SCARD: K\u00fcmedeki Eleman Say\u0131s\u0131n\u0131 Alma<\/h4>\n<p><code>SCARD<\/code> komutu, bir k\u00fcmedeki elemanlar\u0131n say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. Bu da h\u0131zl\u0131 bir O(1) i\u015flemidir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SCARD key<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SCARD my_set\n<h2>(integer) 2<\/code><\/pre>\n<\/h2>\n<h4>SPOP: Rastgele Eleman \u00c7ekme ve Silme<\/h4>\n<p><code>SPOP<\/code> komutu, k\u00fcmeden rastgele bir eleman se\u00e7er, onu k\u00fcmeden kald\u0131r\u0131r ve d\u00f6nd\u00fcr\u00fcr. Bu, bir kuyruktan rastgele bir i\u015f \u00e7ekmek veya bir \u00e7ekili\u015f yapmak gibi senaryolarda kullan\u0131\u015fl\u0131d\u0131r. Birden fazla eleman \u00e7ekmek i\u00e7in iste\u011fe ba\u011fl\u0131 <code>count<\/code> arg\u00fcman\u0131 kullan\u0131labilir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SPOP key [count]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SADD users \"user:1\" \"user:2\" \"user:3\" \"user:4\"\nSPOP users\n<h2>\"user:3\" (\u00f6rne\u011fin)<\/h2>\nSMEMBERS users\n<h2>1) \"user:1\"<\/h2>\n<h2>2) \"user:2\"<\/h2>\n<h2>3) \"user:4\"<\/h2>\nSPOP users 2\n<h2>1) \"user:1\"<\/h2>\n<h2>2) \"user:2\" (\u00f6rne\u011fin)<\/code><\/pre>\n<\/h2>\n<h4>SRANDMEMBER: Rastgele Eleman \u00c7ekme (Silmeden)<\/h4>\n<p><code>SRANDMEMBER<\/code> komutu, <code>SPOP<\/code>&#8216;a benzer \u015fekilde rastgele elemanlar d\u00f6nd\u00fcr\u00fcr, ancak bu elemanlar\u0131 k\u00fcmeden silmez. \u0130ste\u011fe ba\u011fl\u0131 <code>count<\/code> arg\u00fcman\u0131 ile birden fazla rastgele eleman d\u00f6nd\u00fcr\u00fclebilir. E\u011fer <code>count<\/code> pozitifse, benzersiz elemanlar d\u00f6nd\u00fcr\u00fcl\u00fcr. E\u011fer <code>count<\/code> negatifse, elemanlar tekrar edebilir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SRANDMEMBER key [count]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SADD lottery_numbers \"1\" \"5\" \"10\" \"15\" \"20\"\nSRANDMEMBER lottery_numbers\n<h2>\"10\" (\u00f6rne\u011fin)<\/h2>\nSRANDMEMBER lottery_numbers 3\n<h2>1) \"1\"<\/h2>\n<h2>2) \"20\"<\/h2>\n<h2>3) \"5\" (benzersiz 3 eleman)<\/h2>\nSRANDMEMBER lottery_numbers -3\n<h2>1) \"15\"<\/h2>\n<h2>2) \"15\"<\/h2>\n<h2>3) \"1\" (tekrar eden 3 eleman)<\/code><\/pre>\n<\/h2>\n<h3>Geli\u015fmi\u015f K\u00fcme \u0130\u015flemleri<\/h3>\n<p>Redis k\u00fcmelerinin g\u00fcc\u00fc, matematiksel k\u00fcme i\u015flemlerini (birle\u015fim, kesi\u015fim, fark) desteklemesinden gelir. Bu i\u015flemler, karma\u015f\u0131k veri ili\u015fkilerini analiz etmek ve y\u00f6netmek i\u00e7in son derece kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h4>SUNION: K\u00fcme Birle\u015fimi<\/h4>\n<p><code>SUNION<\/code> komutu, birden fazla k\u00fcmenin birle\u015fimini d\u00f6nd\u00fcr\u00fcr. Birle\u015fim, t\u00fcm k\u00fcmelerdeki t\u00fcm benzersiz elemanlar\u0131 i\u00e7eren yeni bir k\u00fcmedir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SUNION key [key ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SADD tech_news \"redis\" \"kafka\" \"docker\"\nSADD finance_news \"bitcoin\" \"ethereum\" \"kafka\"\nSUNION tech_news finance_news\n<h2>1) \"docker\"<\/h2>\n<h2>2) \"kafka\"<\/h2>\n<h2>3) \"bitcoin\"<\/h2>\n<h2>4) \"ethereum\"<\/h2>\n<h2>5) \"redis\"<\/code><\/pre>\n<\/h2>\n<h4>SUNIONSTORE: K\u00fcme Birle\u015fimini Ba\u015fka Bir K\u00fcmeye Kaydetme<\/h4>\n<p><code>SUNIONSTORE<\/code> komutu, <code>SUNION<\/code> ile ayn\u0131 i\u015flevi g\u00f6r\u00fcr ancak sonucunu yeni bir hedef k\u00fcmeye kaydeder. Bu, sonucu tekrar tekrar hesaplamak yerine \u00f6nbelle\u011fe almak i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SUNIONSTORE destination_key key [key ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SUNIONSTORE all_news tech_news finance_news\n<h2>(integer) 5 (Yeni k\u00fcmedeki eleman say\u0131s\u0131)<\/h2>\nSMEMBERS all_news\n<h2>1) \"docker\"<\/h2>\n<h2>2) \"kafka\"<\/h2>\n<h2>3) \"bitcoin\"<\/h2>\n<h2>4) \"ethereum\"<\/h2>\n<h2>5) \"redis\"<\/code><\/pre>\n<\/h2>\n<h4>SINTER: K\u00fcme Kesi\u015fimi<\/h4>\n<p><code>SINTER<\/code> komutu, birden fazla k\u00fcmenin kesi\u015fimini d\u00f6nd\u00fcr\u00fcr. Kesi\u015fim, t\u00fcm k\u00fcmelerde ortak olan elemanlar\u0131 i\u00e7erir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SINTER key [key ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SINTER tech_news finance_news\n<h2>1) \"kafka\"<\/code><\/pre>\n<\/h2>\n<h4>SINTERSTORE: K\u00fcme Kesi\u015fimini Ba\u015fka Bir K\u00fcmeye Kaydetme<\/h4>\n<p><code>SINTERSTORE<\/code> komutu, <code>SINTER<\/code> ile ayn\u0131 i\u015flevi g\u00f6r\u00fcr ancak sonucunu yeni bir hedef k\u00fcmeye kaydeder.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SINTERSTORE destination_key key [key ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SINTERSTORE common_topics tech_news finance_news\n<h2>(integer) 1<\/h2>\nSMEMBERS common_topics\n<h2>1) \"kafka\"<\/code><\/pre>\n<\/h2>\n<h4>SDIFF: K\u00fcme Fark\u0131<\/h4>\n<p><code>SDIFF<\/code> komutu, ilk k\u00fcmede bulunan ancak di\u011fer k\u00fcmelerde bulunmayan elemanlar\u0131 d\u00f6nd\u00fcr\u00fcr. Bu, &#8220;yaln\u0131zca A k\u00fcmesinde olanlar&#8221; senaryosu i\u00e7in idealdir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SDIFF key [key ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SDIFF tech_news finance_news\n<h2>1) \"docker\"<\/h2>\n<h2>2) \"redis\" (tech_news'te var ama finance_news'te yok)<\/h2>\nSDIFF finance_news tech_news\n<h2>1) \"bitcoin\"<\/h2>\n<h2>2) \"ethereum\" (finance_news'te var ama tech_news'te yok)<\/code><\/pre>\n<\/h2>\n<h4>SDIFFSTORE: K\u00fcme Fark\u0131n\u0131 Ba\u015fka Bir K\u00fcmeye Kaydetme<\/h4>\n<p><code>SDIFFSTORE<\/code> komutu, <code>SDIFF<\/code> ile ayn\u0131 i\u015flevi g\u00f6r\u00fcr ancak sonucunu yeni bir hedef k\u00fcmeye kaydeder.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong> <code>SDIFFSTORE destination_key key [key ...]<\/code><\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-redis\">SDIFFSTORE only_tech_news tech_news finance_news\n<h2>(integer) 2<\/h2>\nSMEMBERS only_tech_news\n<h2>1) \"docker\"<\/h2>\n<h2>2) \"redis\"<\/code><\/pre>\n<\/h2>\n<h3>Kullan\u0131m Senaryolar\u0131 ve \u00d6rnekler<\/h3>\n<p>Redis k\u00fcmeleri, \u00e7e\u015fitli pratik uygulama senaryolar\u0131nda g\u00fc\u00e7l\u00fc \u00e7\u00f6z\u00fcmler sunar.<\/p>\n<h4>Etiketleme ve Kategorizasyon<\/h4>\n<p>Bir blog g\u00f6nderisine, \u00fcr\u00fcne veya kullan\u0131c\u0131ya birden fazla etiket atamak i\u00e7in k\u00fcmeler kullan\u0131labilir. Her etiket i\u00e7in bir k\u00fcme olu\u015fturulabilir ve ilgili \u00f6\u011felerin ID&#8217;leri bu k\u00fcmelere eklenebilir.<\/p>\n<p><strong>\u00d6rnek:<\/strong><br \/>\n*   <code>SADD tag:programming \"post:1\" \"post:5\" \"post:10\"<\/code><br \/>\n*   <code>SADD tag:redis \"post:1\" \"post:2\"<\/code><br \/>\n*   <code>SADD tag:databases \"post:2\" \"post:5\"<\/code><\/p>\n<p>Hem &#8220;programming&#8221; hem de &#8220;databases&#8221; etiketine sahip g\u00f6nderileri bulmak i\u00e7in <code>SINTER<\/code> kullan\u0131labilir:<\/p>\n<pre><code class=\"language-redis\">SINTER tag:programming tag:databases\n<h2>1) \"post:5\"<\/code><\/pre>\n<\/h2>\n<h4>Tekil Ziyaret\u00e7iler \/ Benzersiz \u00d6\u011feler<\/h4>\n<p>Bir web sitesinin tekil ziyaret\u00e7i say\u0131s\u0131n\u0131 veya bir \u00f6zelli\u011fin benzersiz kullan\u0131c\u0131lar\u0131n\u0131 takip etmek i\u00e7in k\u00fcmeler kullan\u0131labilir. Her ziyaret\u00e7inin veya kullan\u0131c\u0131n\u0131n ID&#8217;si bir k\u00fcmeye eklenir. <code>SCARD<\/code> komutu, tekil say\u0131y\u0131 verir.<\/p>\n<p><strong>\u00d6rnek:<\/strong><br \/>\n*   G\u00fcnl\u00fck tekil ziyaret\u00e7iler: <code>SADD daily_unique_visitors:2023-10-27 \"user:123\" \"user:456\" \"user:123\"<\/code><br \/>\n*   <code>SCARD daily_unique_visitors:2023-10-27<\/code> -> <code>(integer) 2<\/code><\/p>\n<p>Not: \u00c7ok b\u00fcy\u00fck \u00f6l\u00e7ekli tekil say\u0131mlar i\u00e7in (milyonlarca veya milyarlarca), Redis&#8217;in HyperLogLog veri yap\u0131s\u0131 daha az bellek t\u00fcketimiyle yakla\u015f\u0131k say\u0131mlar sunar. K\u00fcmeler daha \u00e7ok kesin say\u0131mlar ve ek k\u00fcme i\u015flemleri gerekti\u011finde tercih edilir.<\/p>\n<h4>Sosyal A\u011flar: Takip\u00e7iler, Takip Edilenler, Gruplar<\/h4>\n<p>Sosyal medya uygulamalar\u0131nda kullan\u0131c\u0131 ili\u015fkilerini y\u00f6netmek i\u00e7in k\u00fcmeler idealdir.<br \/>\n*   Bir kullan\u0131c\u0131n\u0131n takip\u00e7ileri: <code>followers:user_id<\/code> k\u00fcmesi<br \/>\n*   Bir kullan\u0131c\u0131n\u0131n takip ettikleri: <code>following:user_id<\/code> k\u00fcmesi<br \/>\n*   Bir grubun \u00fcyeleri: <code>group:group_id:members<\/code> k\u00fcmesi<\/p>\n<p><strong>\u00d6rnek:<\/strong><br \/>\n*   <code>SADD followers:user:1 \"user:2\" \"user:3\"<\/code> (user:2 ve user:3, user:1&#8217;i takip ediyor)<br \/>\n*   <code>SADD following:user:1 \"user:4\" \"user:5\"<\/code> (user:1, user:4 ve user:5&#8217;i takip ediyor)<\/p>\n<p>Ortak takip edilenleri bulmak i\u00e7in:<\/p>\n<pre><code class=\"language-redis\">SINTER following:user:1 following:user:2<\/code><\/pre>\n<p>Veya user:1&#8217;in takip etti\u011fi ama user:2&#8217;nin takip etmedi\u011fi ki\u015fileri bulmak i\u00e7in:<\/p>\n<pre><code class=\"language-redis\">SDIFF following:user:1 following:user:2<\/code><\/pre>\n<h4>Eri\u015fim Kontrol\u00fc ve \u0130zinler<\/h4>\n<p>Belirli bir kayna\u011fa (\u00f6rne\u011fin, bir belgeye, bir \u00f6zelli\u011fe) eri\u015fimi olan kullan\u0131c\u0131lar\u0131 veya rolleri y\u00f6netmek i\u00e7in k\u00fcmeler kullan\u0131labilir.<\/p>\n<p><strong>\u00d6rnek:<\/strong><br \/>\n*   <code>SADD document:123:editors \"user:admin\" \"user:john\"<\/code><br \/>\n*   <code>SISMEMBER document:123:editors \"user:john\"<\/code> -> <code>(integer) 1<\/code><\/p>\n<h4>\u00d6neri Sistemleri<\/h4>\n<p>Basit \u00f6neri sistemlerinde, kullan\u0131c\u0131lar\u0131n ilgi alanlar\u0131n\u0131 temsil eden etiket k\u00fcmeleri olu\u015fturulabilir. Benzer ilgi alanlar\u0131na sahip kullan\u0131c\u0131lar\u0131 bulmak i\u00e7in k\u00fcme kesi\u015fimi kullan\u0131labilir.<\/p>\n<p><strong>\u00d6rnek:<\/strong><br \/>\n*   <code>SADD user:1:interests \"tech\" \"movies\" \"sports\"<\/code><br \/>\n*   <code>SADD user:2:interests \"tech\" \"books\" \"sports\"<\/code><br \/>\n*   <code>SINTER user:1:interests user:2:interests<\/code> -> <code>1) \"tech\" 2) \"sports\"<\/code> (Ortak ilgi alanlar\u0131)<\/p>\n<h3>Performans De\u011ferlendirmeleri<\/h3>\n<p>Redis k\u00fcmeleri, y\u00fcksek performans i\u00e7in tasarlanm\u0131\u015ft\u0131r. \u00c7o\u011fu temel i\u015flem O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir, bu da k\u00fcme boyutundan ba\u011f\u0131ms\u0131z olarak \u00e7ok h\u0131zl\u0131 olduklar\u0131 anlam\u0131na gelir.<\/p>\n<p>*   <strong>O(1) \u0130\u015flemler:<\/strong> <code>SADD<\/code>, <code>SREM<\/code>, <code>SISMEMBER<\/code>, <code>SCARD<\/code>, <code>SPOP<\/code> (tek eleman), <code>SRANDMEMBER<\/code> (tek eleman). Bu i\u015flemler, k\u00fcmedeki eleman say\u0131s\u0131ndan ba\u011f\u0131ms\u0131z olarak sabit zamanda tamamlan\u0131r.<br \/>\n*   <strong>O(N) \u0130\u015flemler:<\/strong> <code>SMEMBERS<\/code>, <code>SUNION<\/code>, <code>SINTER<\/code>, <code>SDIFF<\/code> ve bunlar\u0131n <code>STORE<\/code> versiyonlar\u0131. Bu i\u015flemlerin zaman karma\u015f\u0131kl\u0131\u011f\u0131, i\u015fleme dahil olan k\u00fcmelerin toplam eleman say\u0131s\u0131na (N) ba\u011fl\u0131d\u0131r. <code>SMEMBERS<\/code> i\u00e7in N k\u00fcmedeki eleman say\u0131s\u0131d\u0131r. <code>SUNION<\/code> gibi i\u015flemler i\u00e7in N, birle\u015ftirilen t\u00fcm k\u00fcmelerdeki toplam benzersiz eleman say\u0131s\u0131d\u0131r. <code>SINTER<\/code> i\u00e7in N, en k\u00fc\u00e7\u00fck k\u00fcmedeki eleman say\u0131s\u0131d\u0131r. Bu i\u015flemler b\u00fcy\u00fck k\u00fcmelerle \u00e7al\u0131\u015f\u0131rken dikkatli kullan\u0131lmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc performanslar\u0131 eleman say\u0131s\u0131yla do\u011fru orant\u0131l\u0131 olarak d\u00fc\u015febilir.<\/p>\n<h4>Bellek Kullan\u0131m\u0131<\/h4>\n<p>Redis k\u00fcmeleri, elemanlar\u0131 bellekte depolar. Bellek ayak izi, k\u00fcmedeki elemanlar\u0131n say\u0131s\u0131na ve boyutuna ba\u011fl\u0131d\u0131r. Redis, k\u00fc\u00e7\u00fck k\u00fcmeler i\u00e7in bellek verimlili\u011fini art\u0131rmak amac\u0131yla \u00f6zel bir kodlama kullan\u0131r:<\/p>\n<p>*   <strong>intset kodlamas\u0131:<\/strong> E\u011fer bir k\u00fcme yaln\u0131zca k\u00fc\u00e7\u00fck tamsay\u0131lardan (64 bit&#8217;e kadar) olu\u015fuyorsa ve belirli bir boyuttan k\u00fc\u00e7\u00fckse (varsay\u0131lan olarak 512 eleman), Redis bu k\u00fcmeyi <code>intset<\/code> ad\u0131 verilen daha verimli bir veri yap\u0131s\u0131 olarak dahili olarak depolar. Bu, daha az bellek kullan\u0131r ve baz\u0131 i\u015flemler i\u00e7in daha h\u0131zl\u0131 olabilir. K\u00fcme bu s\u0131n\u0131rlar\u0131 a\u015ft\u0131\u011f\u0131nda veya dize elemanlar\u0131 eklendi\u011finde, Redis otomatik olarak genel bir karma tabloya d\u00f6n\u00fc\u015f\u00fcr.<\/p>\n<p>B\u00fcy\u00fck k\u00fcmelerle \u00e7al\u0131\u015f\u0131rken bellek t\u00fcketimini g\u00f6z \u00f6n\u00fcnde bulundurmak \u00f6nemlidir. \u00c7ok say\u0131da b\u00fcy\u00fck k\u00fcme, sunucunun belle\u011fini h\u0131zla t\u00fcketebilir. <code>MEMORY USAGE key<\/code> komutu ile belirli bir anahtar\u0131n bellek kullan\u0131m\u0131n\u0131 kontrol edebilirsiniz.<\/p>\n<h3>En \u0130yi Uygulamalar ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Redis k\u00fcmelerini etkin bir \u015fekilde y\u00f6netmek i\u00e7in baz\u0131 en iyi uygulamalar ve ipu\u00e7lar\u0131 a\u015fa\u011f\u0131dad\u0131r:<\/p>\n<p>1.  <strong>Anahtar Adland\u0131rma Kurallar\u0131:<\/strong> Anlaml\u0131 ve tutarl\u0131 anahtar adlar\u0131 kullan\u0131n (\u00f6rne\u011fin, <code>user:{id}:followers<\/code>, <code>product:{id}:tags<\/code>). Bu, k\u00fcmelerinizi daha kolay organize etmenizi ve y\u00f6netmenizi sa\u011flar.<br \/>\n2.  <strong>Pipelining Kullan\u0131m\u0131:<\/strong> Birden fazla <code>SADD<\/code> veya <code>SREM<\/code> komutunu tek bir a\u011f iste\u011finde g\u00f6ndermek i\u00e7in pipelining kullan\u0131n. Bu, a\u011f gecikmesini azaltarak performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-python\">import redis\n    r = redis.Redis(decode_responses=True)\n    pipe = r.pipeline()\n    pipe.sadd(\"my_set\", \"item1\")\n    pipe.sadd(\"my_set\", \"item2\")\n    pipe.sadd(\"my_set\", \"item3\")\n    results = pipe.execute()<\/code><\/pre>\n<p>3.  <strong>\u0130\u015flemsel Operasyonlar (MULTI\/EXEC):<\/strong> Birden fazla k\u00fcme i\u015fleminin atomik olarak (hepsi ya da hi\u00e7biri) y\u00fcr\u00fct\u00fclmesi gerekti\u011finde <code>MULTI<\/code> ve <code>EXEC<\/code> komutlar\u0131n\u0131 kullan\u0131n. Bu, tutarl\u0131l\u0131\u011f\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-redis\">MULTI\n    SADD user:1:friends \"user:2\"\n    SADD user:2:friends \"user:1\"\n    EXEC<\/code><\/pre>\n<p>4.  <strong>B\u00fcy\u00fck K\u00fcmeleri Y\u00f6netme:<\/strong><br \/>\n    *   <code>SMEMBERS<\/code> yerine <code>SSCAN<\/code> kullan\u0131n: E\u011fer bir k\u00fcme \u00e7ok b\u00fcy\u00fckse (milyonlarca eleman), <code>SMEMBERS<\/code> t\u00fcm elemanlar\u0131 tek seferde d\u00f6nd\u00fcrece\u011fi i\u00e7in sunucuya ve istemciye y\u00fck bindirebilir. Bunun yerine, k\u00fcme elemanlar\u0131n\u0131 yinelemeli olarak almak i\u00e7in <code>SSCAN<\/code> komutunu kullan\u0131n. <code>SSCAN<\/code>, sunucu kaynaklar\u0131n\u0131 bloke etmeden elemanlar\u0131 par\u00e7a par\u00e7a alman\u0131z\u0131 sa\u011flar.<br \/>\n    *   <code>SSCAN key cursor [MATCH pattern] [COUNT count]<\/code><br \/>\n    *   B\u00fcy\u00fck k\u00fcme i\u015flemleri i\u00e7in <code>STORE<\/code> komutlar\u0131n\u0131 kullan\u0131n: <code>SUNIONSTORE<\/code>, <code>SINTERSTORE<\/code>, <code>SDIFFSTORE<\/code> gibi komutlar, sonu\u00e7lar\u0131 do\u011frudan Redis i\u00e7inde yeni bir k\u00fcmeye kaydetti\u011fi i\u00e7in istemci taraf\u0131nda veri aktar\u0131m\u0131 ve i\u015fleme y\u00fck\u00fcn\u00fc azalt\u0131r.<br \/>\n5.  <strong>TTL (Time To Live) Kullan\u0131m\u0131:<\/strong> Ge\u00e7ici veriler i\u00e7eren k\u00fcmeler i\u00e7in <code>EXPIRE<\/code> komutunu kullanarak bir ya\u015fam s\u00fcresi belirleyin. Bu, eski verilerin otomatik olarak temizlenmesini sa\u011flar ve bellek kullan\u0131m\u0131n\u0131 optimize eder.<\/p>\n<pre><code class=\"language-redis\">SADD temp_users \"user:1\" \"user:2\"\n    EXPIRE temp_users 3600 # 1 saat sonra sil<\/code><\/pre>\n<p>6.  <strong>\u0130zleme ve G\u00f6zlemleme:<\/strong> <code>INFO<\/code> komutu, Redis sunucunuzun genel durumu hakk\u0131nda bilgi sa\u011flar. <code>redis-cli --latency<\/code> gibi ara\u00e7larla Redis gecikmesini izleyebilirsiniz. B\u00fcy\u00fck k\u00fcme i\u015flemleri s\u0131ras\u0131nda CPU ve bellek kullan\u0131m\u0131n\u0131 takip etmek, performans sorunlar\u0131n\u0131 erken te\u015fhis etmenize yard\u0131mc\u0131 olur.<\/p>\n<h3>S\u0131n\u0131rlamalar ve Alternatifler<\/h3>\n<p>Redis k\u00fcmeleri son derece g\u00fc\u00e7l\u00fc olsa da, her senaryo i\u00e7in en uygun veri yap\u0131s\u0131 olmayabilir.<\/p>\n<p>*   <strong>S\u0131ralama Yok:<\/strong> K\u00fcmeler s\u0131ras\u0131zd\u0131r. Elemanlar\u0131n belirli bir s\u0131rada tutulmas\u0131 gerekiyorsa (\u00f6rne\u011fin, en son eklenenler, en pop\u00fcler olanlar), <strong>S\u0131ral\u0131 K\u00fcmeler (Sorted Sets)<\/strong> daha uygun bir se\u00e7enektir. S\u0131ral\u0131 k\u00fcmeler, her elemanla ili\u015fkili bir skor de\u011feri tutar ve bu skorlara g\u00f6re s\u0131ralama yapar.<br \/>\n*   <strong>Bellek Ayak \u0130zi:<\/strong> \u00c7ok say\u0131da k\u00fc\u00e7\u00fck k\u00fcme veya birka\u00e7 \u00e7ok b\u00fcy\u00fck k\u00fcme, \u00f6nemli miktarda bellek t\u00fcketebilir. E\u011fer tekil say\u0131mlar i\u00e7in kesinli\u011fe ihtiya\u00e7 yoksa ve bellek k\u0131s\u0131tl\u0131ysa, <strong>HyperLogLog<\/strong> (PFADD, PFCOUNT) yakla\u015f\u0131k tekil say\u0131mlar i\u00e7in \u00e7ok daha az bellek kullan\u0131r.<br \/>\n*   <strong>Yo\u011fun Boolean K\u00fcmeleri:<\/strong> E\u011fer \u00e7ok say\u0131da eleman\u0131n basit\u00e7e &#8220;var&#8221; veya &#8220;yok&#8221; durumunu temsil etmeniz gerekiyorsa ve elemanlar genellikle ard\u0131\u015f\u0131k tamsay\u0131lar ise, <strong>Bitmaps<\/strong> (SETBIT, GETBIT, BITCOUNT) daha verimli bir \u00e7\u00f6z\u00fcm olabilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Redis k\u00fcmeleri, modern uygulama geli\u015ftirmede vazge\u00e7ilmez bir ara\u00e7t\u0131r. Benzersiz elemanlar\u0131 depolama, h\u0131zl\u0131 \u00fcyelik kontrol\u00fc ve g\u00fc\u00e7l\u00fc k\u00fcme matematik i\u015flemleri sayesinde, etiketleme sistemlerinden sosyal a\u011flara, eri\u015fim kontrol\u00fcnden \u00f6neri motorlar\u0131na kadar geni\u015f bir yelpazede karma\u015f\u0131k sorunlara zarif ve performansl\u0131 \u00e7\u00f6z\u00fcmler sunarlar.<\/p>\n<p>Temel ve geli\u015fmi\u015f komutlar\u0131n\u0131 anlamak, performans \u00f6zelliklerini g\u00f6z \u00f6n\u00fcnde bulundurmak ve en iyi uygulamalar\u0131 takip etmek, Redis k\u00fcmelerinin g\u00fcc\u00fcnden tam olarak yararlanman\u0131z\u0131 sa\u011flayacakt\u0131r. Do\u011fru senaryoda kullan\u0131ld\u0131\u011f\u0131nda, Redis k\u00fcmeleri uygulamalar\u0131n\u0131z\u0131n h\u0131z\u0131n\u0131 ve esnekli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. Ancak, her zaman oldu\u011fu gibi, uygulaman\u0131z\u0131n \u00f6zel ihtiya\u00e7lar\u0131n\u0131 ve veri eri\u015fim modellerini dikkatlice de\u011ferlendirmek ve en uygun Redis veri yap\u0131s\u0131n\u0131 se\u00e7mek \u00f6nemlidir. Redis&#8217;in sundu\u011fu zengin veri yap\u0131lar\u0131 seti, geli\u015ftiricilere bu esnekli\u011fi sa\u011flar.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Redis&#8217;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber\nRedis, y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131 bir bellek i\u00e7i veri yap\u0131s\u0131 deposudur. Anahtar-de","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1404],"tags":[],"class_list":{"0":"post-38938","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-redis","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Redis&#039;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber - 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\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Redis&#039;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Redis&#039;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber Redis, y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131 bir bellek i\u00e7i veri yap\u0131s\u0131 deposudur. Anahtar-de\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-11T00:40:55+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=\"13 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Redis&#8217;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2026-02-11T00:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/\"},\"wordCount\":2169,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Redis\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/\",\"name\":\"Redis'te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-11T00:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Redis&#8217;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber\"}]},{\"@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'te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber - 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\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Redis'te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber","og_description":"Redis'te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber Redis, y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131 bir bellek i\u00e7i veri yap\u0131s\u0131 deposudur. Anahtar-de","og_url":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-11T00:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"13 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Redis&#8217;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber","datePublished":"2026-02-11T00:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/"},"wordCount":2169,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Redis"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/","name":"Redis'te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-11T00:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rediste-kumeleri-yonetmek-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Redis&#8217;te K\u00fcmeleri Y\u00f6netmek: Kapsaml\u0131 Bir Rehber"}]},{"@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\/38938","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=38938"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38938\/revisions"}],"predecessor-version":[{"id":38939,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38938\/revisions\/38939"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}