πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

Redis Deep Dive

Data SystemsKey-Value Stores🟒 Free Lesson

Advertisement

Data Systems

Redis Deep Dive

Redis is more than a cacheβ€”it's a versatile in-memory data structure server. Master its data structures, persistence models, clustering, and the use cases that make it indispensable.

  • Speed β€” Sub-millisecond latency for all operations
  • Versatility β€” Data structures beyond simple key-value
  • Durability β€” Optional persistence to disk

Redis is the Swiss Army knife of in-memory data stores.

Redis Architecture

DfRedis

Redis (Remote Dictionary Server) is an open-source, in-memory data structure store. Unlike simple key-value stores, Redis supports multiple data structures (strings, hashes, lists, sets, sorted sets, streams, HyperLogLogs) as values. Data is stored in memory for sub-millisecond access, with optional persistence to disk.

ClientRedis ServerEvent LoopSingle-threaded, non-blockingData StructuresString Hash ListSet ZSet StreamIn-Memory StoreAll data in RAMPersistenceRDB snapshots + AOF log

Data Structures

StructureUse CaseCommands
StringCache, counters, locksGET, SET, INCR, APPEND
HashObjects, user profilesHGET, HSET, HGETALL, HMSET
ListQueues, recent itemsLPUSH, RPUSH, LPOP, LRANGE
SetTags, unique itemsSADD, SMEMBERS, SINTER, SUNION
Sorted SetLeaderboards, priority queuesZADD, ZRANGE, ZRANK, ZSCORE
StreamEvent sourcing, messagingXADD, XREAD, XLEN, XRANGE
HyperLogLogCardinality estimationPFADD, PFCOUNT
BitmapFeature flags, user activitySETBIT, BITCOUNT, BITOP

Redis Data Structure Usage

String (cache): SET user:123 '{"name":"Alice"}' EX 3600 Hash (object): HSET user:123 name "Alice" age 30 email "alice@example.com" Sorted Set (leaderboard): ZADD leaderboard 100 "player1" 95 "player2" 87 "player3" Stream (events): XADD orders * product "laptop" quantity 1 price 999

Persistence Models

DfRDB Persistence

RDB (Redis Database) takes point-in-time snapshots of the dataset at specified intervals. Snapshots are compact, fast to restore, and good for backups. However, data between snapshots is lost if Redis crashes.

DfAOF Persistence

AOF (Append-Only File) logs every write operation. It provides better durability than RDB because each write is logged. The file can be rewritten periodically to reduce size. AOF trades write performance for durability.

FeatureRDBAOFBoth
DurabilityPoint-in-timeEvery writeMaximum
PerformanceMinimal impactModerate impactModerate
Recovery speedFastSlowerFast
File sizeCompactLargerModerate

For most production deployments, use both RDB and AOF. RDB provides fast backups and recovery; AOF provides better durability. Redis 4.0+ supports AOF rewrite with RDB-like snapshots in the AOF file.

Redis Clustering

Master 1Slots 0-5460PrimaryMaster 2Slots 5461-10922PrimaryMaster 3Slots 10923-16383PrimaryReplica 1Replica of Master 1Read-onlyReplica 2Replica of Master 2Read-onlyReplica 3Replica of Master 3Read-onlyRedis Cluster16,384 hash slotsAutomatic sharding

Hash Slot Distribution

Hash Slot Assignment

Slot=CRC16(key)mod  16384Slot = CRC16(key) \mod 16384

Here,

  • SlotSlot=Hash slot number (0-16383)
  • keykey=The Redis key
  • 1638416384=Total number of hash slots

Common Use Cases

Use CaseData StructurePattern
CachingStringCache-aside, TTL-based expiration
Session storeHashPer-user session data
Rate limitingString + INCRFixed/sliding window
LeaderboardSorted SetZADD, ZREVRANGE
QueueListLPUSH + RPOP (FIFO)
Pub/SubPub/SubReal-time messaging
Leader electionString + SET NXDistributed locks

Rate Limiting with Redis

Fixed window rate limiter (100 requests per minute):

Architecture Diagram
INCR rate:{user_id}:{minute}
EXPIRE rate:{user_id}:{minute} 60

# Check limit
GET rate:{user_id}:{minute} <= 100 ? ALLOW : DENY

Sliding window (more accurate): Use sorted set with timestamps as scores, remove old entries, count remaining.

Practice Exercises

  1. Data Structure Selection: For each use case, choose the optimal Redis data structure and justify your choice:

    • Real-time chat messages (last 50 per room)
    • User shopping cart
    • Social media feed (last 100 posts per user)
    • Real-time analytics counter
  2. Cluster Design: Design a Redis cluster for a social media application with 10M users. How many nodes, shards, and replicas would you use?

  3. Persistence Design: Your Redis instance stores critical session data. Design the persistence strategy that balances durability and performance.

  4. Caching Strategy: Design a Redis caching strategy for an e-commerce product catalog with 1M products, 90% read-heavy workload, and 10-minute TTL. What cache eviction policy would you use?

Key Takeaways:

  • Redis supports multiple data structures beyond simple key-value
  • Single-threaded event loop provides predictable performance without locks
  • RDB + AOF persistence balances durability and performance
  • Redis Cluster uses hash slots for automatic sharding across nodes
  • Common use cases: caching, sessions, rate limiting, leaderboards, queues
  • Sub-millisecond latency makes Redis ideal for latency-critical paths

What to Learn Next

-> Kafka Deep Dive Event streaming, partitioning, and exactly-once semantics.

-> Cassandra Deep Dive Cassandra architecture, data modeling, and operational patterns.

-> Caching Strategies Cache-aside, write-through, write-back, and cache invalidation.

-> Distributed Cache Design Designing a distributed caching system.

-> Rate Limiting Token bucket, sliding window, and distributed rate limiting.

-> NoSQL Deep Dive Document, key-value, column-family, and graph databases.

⭐

Premium Content

Redis Deep Dive

Unlock this lesson and 900+ advanced tutorials with a Premium plan.

🎯End-to-end Projects
πŸ’ΌInterview Prep
πŸ“œCertificates
🀝Community Access

Already a member? Log in

Need Expert System Design Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement