NoSQL Types
| Type | উদাহরণ | Use |
|---|---|---|
| Document | MongoDB | CMS, profile |
| Key-Value | Redis | Cache, session |
| Column | Cassandra | Time-series, IoT |
| Graph | Neo4j | Social, recommendation |
MongoDB ⭐
db.users.insertOne({
name: "Rahim", email: "rahim@x.com",
addresses: [{type: "home", city: "Dhaka"}],
tags: ["vip"]
});
db.users.find({"addresses.city": "Dhaka"});
db.users.updateOne({_id: id}, {$set: {name: "Karim"}});
// Aggregation
db.orders.aggregate([
{$match: {status: "completed"}},
{$group: {_id: "$customerId", total: {$sum: "$amount"}}},
{$sort: {total: -1}}, {$limit: 10}
]);
db.users.createIndex({email: 1}, {unique: true});
Schema Design
- Embed: 1:N small (addresses)
- Reference: 1:N large, M:N
- Read pattern অনুযায়ী
- 16MB document limit
Redis ⭐
SET user:1 "Rahim" EXPIRE user:1 3600 HSET user:1 name "Rahim" age 25 LPUSH tasks "task1"; RPOP tasks SADD tags "php" "mysql" ZADD scores 100 "Rahim" ZREVRANGE scores 0 9 WITHSCORES PUBLISH channel "msg" SUBSCRIBE channel
Use Cases
Cache, session, rate limit, leaderboard, pub/sub, distributed lock।
Cassandra
Massive scale (Netflix, Apple)। Linear scalability, no SPOF, eventual consistency, CQL।
CAP Theorem ⭐
Consistency
/\
CA / \ CP (MongoDB)
/----\
AP (Cassandra, Dynamo)
Availability Partition Tolerance
Network failure inevitable → CP বা AP।
BASE vs ACID
| ACID | BASE |
|---|---|
| Atomic, Consistent | Basically Available |
| Isolated, Durable | Soft state, Eventual |