NoSQL Nedir? Redis, MongoDB ve SQL'den Farkı
NoSQL türlerini, Redis ve MongoDB'nin nasıl çalıştığını, CAP teoremini, tutarlılık modellerini, NoSQL güvenliğini ve lisans değişikliklerini anlattık.

Kısa cevap: NoSQL, veriyi ilişkisel tablolar yerine doküman, anahtar-değer, geniş sütun ya da graf modeliyle saklayan veritabanlarının ortak adıdır; Google Cloud kısaltmayı "not only SQL" diye açıyor. Bu sistemler esnek şema ve yatay ölçekleme için katı şemadan ve geniş transaction kapsamından kısmen vazgeçer. Yaygın iki örnek, doküman veritabanı MongoDB ile veriyi bellekte tutan ve çoğu zaman cache olarak kullanılan Redis. Ağ bölündüğünde dağıtık bir sistem tutarlılık ile erişilebilirlik arasında seçim yapmak zorunda kalır (CAP teoremi); Cassandra, DynamoDB ve Azure Cosmos DB gibi sistemler tutarlılık düzeyini kullanıcıya seçtirir.
NoSQL nedir?
Google Cloud'un tanımıyla NoSQL, "not only SQL" ifadesinin kısaltması: veriyi ilişkisel tablolar yerine tablo dışı biçimlerde saklayan veritabanlarının adı. Microsoft'a göre bu sistemler esnek şema, yatay ölçek ve belirli erişim desenleri için optimize edilir. AWS onlara amaca özel (purpose-built) veritabanları diyor.
Stack Overflow'un 23 Haziran ile 5 Ağustos 2026 arasında yaptığı geliştirici anketinde veritabanı sorusunu cevaplayan 12.061 kişinin %28,3'ü son bir yılda Redis, %19'u MongoDB ile yoğun geliştirme yaptığını söyledi.
NoSQL veritabanı türleri
Başlıca dört tür şunlar:
- Doküman (document): Kayıtlar JSON'a benzeyen dokümanlarda durur; aynı koleksiyondaki dokümanların yapısı farklı olabilir. Örnek: MongoDB.
- Anahtar-değer (key-value): Google Cloud'a göre en basit tür: değer benzersiz bir anahtarla yazılır ve o anahtarla okunur. Örnek: Redis.
- Geniş sütun (wide-column): Apache Cassandra partition'lara bölünmüş geniş sütunlu bir depolama modeli kullanır ve eventual consistency ile çalışır. Sorgu dili SQL'e benzeyen CQL; dağıtık join ve yabancı anahtar ise bilerek yok.
- Graf (çizge): Neo4j belgelerine göre veri node, ilişki ve özellik olarak saklanır; join kullanılmaz, ilişki verinin yanında tutulur. Graf sorgu dili GQL, Nisan 2024'te ISO/IEC 39075 numarasıyla standart oldu.
MongoDB nedir?
MongoDB bir doküman veritabanı: her kayıt, alan-değer çiftlerinden oluşan ve JSON nesnesine benzeyen bir doküman; dokümanlar katı şema dayatmayan koleksiyonlarda durur. Bir alanın değeri başka bir doküman ya da dizi olabildiği için join ihtiyacı azalır. Kayıtlar JSON'ın ikili gösterimi olan BSON biçiminde saklanır; tek dokümanın azami boyutu 16 mebibayt (MiB).
Tek doküman üzerindeki işlem atomik. Çok dokümanlı transaction da var, ama belgelere göre çoğu durumda daha pahalı ve iyi şema tasarımının yerini tutmuyor.
Redis nedir? Cache olarak kullanımı
Redis kendini bir veri yapısı sunucusu olarak tanımlıyor; string, hash, list, set, sorted set ve stream gibi türleri cache'ten kuyruğa ve olay işlemeye kadar farklı işlerde kullanılıyor. Google Cloud onu veriyi bellekte tutan veritabanlarına örnek gösteriyor; diske yazma seçeneklerini VTYS yazımızda anlattık.
Redis belgelerine göre Redis sıklıkla yavaş bir veritabanının önünde okumayı hızlandıran bir cache olarak kullanılıyor. Cache'teki kayıt kalıcı verinin kopyası olduğundan bellek dolunca genellikle güvenle silinebilir. maxmemory bellek sınırını, maxmemory-policy sınıra gelince hangi anahtarın silineceğini belirler. Adı volatile ile başlayan politikalar yalnızca süresi tanımlı anahtarları siler, böyle anahtar yoksa yeni yazmalara hata döner. Süreyi EXPIRE tanımlar; süre dolunca anahtar kendiliğinden silinir.
Cache-aside deseninde uygulama kaydı cache'te bulamazsa veritabanından okuyup cache'e yazar; Microsoft'a göre desen, cache ile veritabanı arasında tutarlılık garantisi vermez. Redis'in transaction'ları komutları yalıtılmış tek adımda çalıştırır ama rollback desteklemez.
SQL ve NoSQL farkı
AWS'nin karşılaştırmasına göre ilişkisel veritabanları veriyi satır ve sütunlardan oluşan tablolara normalize eder, genellikle donanım büyütülerek dikey ölçeklenir, ACID özellikleri sunar ve SQL ile sorgulanır. NoSQL veritabanları farklı veri modelleriyle çalışır, genellikle dağıtık cluster'larla yatay ölçeklenir ve nesne tabanlı API'lerle kullanılır; çoğu ACID özelliklerinin bir kısmını gevşetir.
Sınır yine de keskin değil: PostgreSQL, JSON veriyi jsonb türünde indeksleyerek saklayabiliyor (PostgreSQL yazımız). Ne zaman ilişkisel, ne zaman NoSQL veritabanı seçileceğini PostgreSQL mü MongoDB mi yazımızda tartıştık. Raporlama için veriyi bir veri ambarına taşımayı ETL yazımızda anlattık; veritabanı değişikliğini uygulama ve veritabanı modernizasyonu hizmetimizde ele alıyoruz.
CAP teoremi, ACID ve BASE
Eric Brewer, 19 Temmuz 2000'de PODC konferansındaki açılış konuşmasında veri paylaşan bir sistemin tutarlılık, erişilebilirlik ve ağ bölünmesine dayanıklılık (partition tolerance) özelliklerinden en fazla ikisine sahip olabileceğini söyledi. Seth Gilbert ve Nancy Lynch, Haziran 2002'de SIGACT News'te yayımlanan makalelerinde bunu kanıtladı: mesajların kaybolabildiği asenkron bir ağda, her isteğe cevap veren ve aynı zamanda atomik tutarlılık sağlayan bir okuma/yazma nesnesi kurulamaz. Atomik tutarlılık, bir yazma tamamlandıktan sonra başlayan her okumanın o değeri ya da daha sonraki bir yazmanın değerini döndürmesi demek.
Pratikte Cassandra dengeyi her işlem için consistency level ile seçtirir; yazma ve okuma QUORUM ile yapılırsa en az bir kopya iki işleme de katılır ve yazma okumaya görünür. DynamoDB'de varsayılan okuma eventually consistent, yani yeni bir yazma hemen görünmeyebilir. Azure Cosmos DB ise strong'dan eventual'a beş düzey sunuyor.
Brewer aynı konuşmada ACID'in karşısına BASE'i koydu: Basically Available, Soft-state, Eventual consistency. ACID güçlü tutarlılığa odaklanır; BASE eski veriyi kabul eder ve önceliği erişilebilirliğe verir. Brewer ikisini bir yelpazenin uçları olarak görüyor.
Ölçekleme: sharding ve replikasyon
MongoDB'ye göre sharding veriyi birden çok makineye dağıtır ve çok büyük veri kümeleri için kullanılır. Dağılımı shard key belirler; kötü seçilen bir anahtar dengesiz dağılıma ya da darboğaza yol açabilir. Redis Cluster anahtarları 16.384 hash slot'a, Cassandra ise consistent hashing ile node'lara dağıtır.
MongoDB'de her shard bir replica set olarak kurulur: yazmaları primary alır, secondary'ler onun oplog'unu uygular. Varsayılan write concern "majority"; w: 1 ile yalnızca primary'nin onayladığı bir yazma, secondary'lere ulaşmadan primary görevi bırakırsa geri alınabilir. Replikasyon asenkron olduğundan secondary'den okunan veri eski olabilir; Redis Cluster aynı nedenle onayladığı yazmaları bazı koşullarda kaybedebilir. Senkron ve asenkron farkını replikasyon yazımızda anlattık.
NoSQL güvenliği: internete açık veritabanları
Redis belgelerine göre Redis güvenilir ağlardaki güvenilir istemciler için tasarlandı ve onu doğrudan internete açmak genellikle iyi bir fikir değil. MongoDB de süreçlerine yalnızca güvenilir ağlardan erişilmesini istiyor. Temel önlemler şunlar:
- Ağ: MongoDB varsayılan olarak yalnızca localhost'a bağlanır. Redis 3.2.0'dan beri, varsayılan ayarla ve parolasız çalıştırılırsa protected mode'a geçip yalnızca loopback arayüzünden gelen sorgulara cevap verir; yönetici bu korumayı kapatabilir.
- Kimlik ve yetki: MongoDB'de erişim denetimi varsayılan olarak kapalı; kontrol listesi onu açmayı, her kişi ve uygulamaya ayrı kullanıcı ve yalnızca gereken rolü vermeyi istiyor (IAM yazımız). Redis'te önerilen yöntem, Redis 6 ile gelen ACL'ler.
- Şifreleme: İki sistem de TLS destekliyor (SSL yazımız).
- Injection: OWASP'a göre NoSQL veritabanları SQL kullanmasa da injection saldırılarına açık olabilir.
Bu katmanı veritabanı platform mühendisliği ve veritabanı platformu ve operasyonları hizmetlerimizde ele alıyoruz.
Lisans değişiklikleri: SSPL, RSAL ve AGPL
- MongoDB: 16 Ekim 2018'de Community Server'ı GNU AGPLv3'ten kendi yazdığı Server Side Public License'a (SSPL) taşıdı. SSS sayfasına göre SSPL OSI onaylı değil ve ek koşulu yalnızca MongoDB'yi üçüncü taraflara hizmet olarak sunanları bağlıyor.
- Redis: 20 Mart 2024'te 7.4 sürümünden itibaren BSD lisansını bırakıp RSALv2 ve SSPLv1 ile çift lisansa geçti ve bunun OSI tanımıyla açık kaynak olmadığını kabul etti. 1 Mayıs 2025'te Redis 8 ile AGPLv3'ü üçüncü seçenek olarak ekledi; lisans sayfasına göre 7.2.x ve öncesi BSD lisanslı.
Kurumunuza etkisi hukuki bir değerlendirme konusu.
Sık sorulan sorular
NoSQL ne demek? "Not only SQL" ifadesinin kısaltmasıdır. İlişkisel tablo yerine doküman, anahtar-değer, geniş sütun ya da graf modeli kullanan veritabanlarının ortak adı.
Redis nedir, ne işe yarar? Veriyi bellekte tutan bir veri yapısı sunucusudur; sıklıkla yavaş bir veritabanının önünde cache olarak kullanılır.
MongoDB nedir? Kayıtları JSON'a benzeyen dokümanlar hâlinde koleksiyonlarda saklayan bir doküman veritabanıdır.
SQL ve NoSQL farkı nedir? İlişkisel sistemler veriyi şemaya bağlı tablolarda tutar ve SQL ile sorgulanır. NoSQL sistemler esnek şema ve yatay ölçekleme için ACID özelliklerinin bir kısmını gevşetir.
CAP teoremi nedir? Ağ bölündüğünde dağıtık bir sistemin tutarlılığı ve erişilebilirliği birlikte garanti edemeyeceğini söyler. Eric Brewer 2000'de ortaya attı, Seth Gilbert ve Nancy Lynch 2002'de kanıtladı.
Kaynaklar
- Google Cloud, What is NoSQL?: NoSQL'in tanımı ve "not only SQL" açılımı, anahtar-değer ve bellek içi veritabanları
- Microsoft, Understand data models: ilişkisel olmayan veritabanlarının tanımı ve türleri
- AWS, What is NoSQL?: amaca özel veritabanları, türler ve SQL ile NoSQL karşılaştırması
- Stack Overflow, 2026 Developer Survey: Databases ve Methodology: Redis ve MongoDB kullanım oranları (anket 23 Haziran-5 Ağustos 2026; veritabanı sorusunda 12.061 cevap)
- Apache Cassandra, Overview ve Dynamo: geniş sütun modeli, CQL, desteklenmeyen işlemler, consistency level ve consistent hashing
- Neo4j, What is a graph database?: graf modeli ve join kullanılmaması
- ISO, ISO/IEC 39075:2024 Database languages: GQL: graf sorgu dili standardı (Nisan 2024)
- MongoDB, Introduction, Documents ve Transactions: doküman modeli, BSON, 16 MiB sınırı ve transaction'lar
- Redis, Data types, Key eviction, EXPIRE ve Transactions: veri türleri, cache kullanımı, TTL ve rollback desteğinin olmaması
- Microsoft, Cache-Aside pattern: cache-aside deseni ve tutarlılık sınırı
- PostgreSQL, JSON Types: json ve jsonb türleri (PostgreSQL 18 belgesi, 13 Ekim 2026'da okundu)
- Eric Brewer, Towards Robust Distributed Systems: CAP varsayımı, ACID ve BASE (PODC açılış konuşması, 19 Temmuz 2000)
- Seth Gilbert ve Nancy Lynch, Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services: CAP'in kanıtı ve tanımlar (SIGACT News, Haziran 2002)
- Seth Gilbert ve Nancy Lynch, Perspectives on the CAP Theorem: 2002 makalesinin yayın bilgisi (kaynakça)
- AWS, DynamoDB read consistency: eventually ve strongly consistent okuma
- Microsoft, Consistency levels in Azure Cosmos DB: beş tutarlılık düzeyi
- MongoDB, Sharding, Replication ve Write Concern: shard key, replica set ve varsayılan write concern
- Redis, Scale with Redis Cluster: hash slot'lar ve tutarlılık garantisi
- Redis, Security: güvenilir ağ, protected mode, ACL ve TLS
- MongoDB, IP Binding in Self-Managed Deployments, Role-Based Access Control ve Security Checklist: localhost'a bağlanma, varsayılan olarak kapalı erişim denetimi, en az yetki ve TLS
- OWASP, WSTG v4.2 Testing for NoSQL Injection: NoSQL injection
- MongoDB, MongoDB Issues New Server Side Public License for MongoDB Community Server ve SSPL SSS: lisans değişikliği ve kapsamı (16 Ekim 2018)
- Redis, Redis Adopts Dual Source-Available Licensing (20 Mart 2024), Redis is now available under the AGPLv3 open source license (1 Mayıs 2025) ve Licenses: Redis'in lisans değişiklikleri
- Bu katmanı nasıl işlettiğimiz: veritabanı platform mühendisliği