NoSQL در عمل: Redis و Cassandra

دو ستاره NoSQL: Redis (ساختارهای داده در حافظه) و Cassandra (ستونی توزیع‌شده) — چه زمانی کدام؟

Redis — چاقوی سوئیسی حافظه

Redis = دیتابیس در RAM با ساختارهای داده غنی:

ساختارکاربرد
Stringکش ساده، شمارنده (INCR)
Hashشیء (پروفایل کاربر)
Listصف، تایم‌لاین (LPUSH/LRANGE)
Setمجموعه، فالوورها، یکتاسازی
Sorted Setلیدربورد! (امتیاز + ترتیب)
Pub/Sub + Streamپیام‌رسانی سبک

ویژگی‌ها: فوق سریع (~۱۰۰K+ ops/s)، TTL بومی، Persistence اختیاری (AOF/RDB)، Atomic عملیات‌ها.

کاربردها: کش، Session، Rate Limiter، لیدربورد، صف سبک، قفل توزیع‌شده!

Cassandra — غول نوشتن

Cassandra = ستونی، بدون Master، مقیاس خطی:

قید مهم: کوئری‌ها باید از اول طراحی شوند! (WHERE فقط روی کلید) — انعطاف SQL ندارد.

مقایسه

معیارRedisCassandra
حافظهRAM (محدود!)دیسک (عظیم)
سرعت خواندننانونی ✓✓میلی‌ثانیه
نوشتن عظیمخوبفوق‌العاده ✓✓
سازگاریقابل تنظیمEventual (تنظیم‌پذیر)
حجم دادهGB هاPB ها ✓✓
کاربردکش، Session، Real-timeسری زمانی، لاگ، پیام
نکته: این دو رقیب نیستند — مکمل‌اند! سیستم بزرگ: Redis جلوی دیتابیس (کش) + Cassandra برای لاگ عظیم. انتخاب = «چه کوئری؟ چه حجم؟ چه تأخیر؟»

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.

ابزارهای مرتبط