What is Redis?
Redis (Remote Dictionary Server) is an in-memory data structure store used as a database, cache, and message broker. It supports data structures such as strings, hashes, lists, sets, and sorted sets with range queries, bitmaps, hyperloglogs, and geospatial indexes.
100K+
Operations/sec
<1ms
Average latency
100%
In-memory speed
Data Structures
String
Use Cases
- Caching
- Session storage
- Counters
- Feature flags
Performance
O(1) for most operations
Common Operations
SET key value
GET key
INCR counter
SETEX key 3600 value
Memory Overhead
Low (minimal overhead)
🧮 Redis Performance Calculator
Configuration
Performance Metrics
Throughput47,500 ops/sec
Memory Usage2,470 MB
DurabilitySnapshot
Caching Patterns
Cache-Aside (Lazy Loading)
Application manages cache. Read from cache, if miss then read from DB and update cache.
Pros: Only caches requested data, resilient to cache failures
Cons: Cache miss penalty, potential for stale data
Cons: Cache miss penalty, potential for stale data
Write-Through
Write to cache and database simultaneously. Ensures cache is always consistent.
Pros: Always consistent, no stale data
Cons: Higher write latency, caches unused data
Cons: Higher write latency, caches unused data
Write-Behind (Write-Back)
Write to cache immediately, write to database asynchronously.
Pros: Low write latency, batched DB writes
Cons: Risk of data loss, complex implementation
Cons: Risk of data loss, complex implementation
Refresh-Ahead
Automatically refresh cache before expiration based on access patterns.
Pros: Reduces cache miss penalty, predictable performance
Cons: Complex logic, may refresh unused data
Cons: Complex logic, may refresh unused data
🏢 Real-world Implementations
Twitter: Timeline Caching
• User timelines cached with Redis Lists
• 50M+ cached timelines
• Sub-millisecond read performance
• Cache-aside pattern with TTL
Pattern: LPUSH for new tweets, LRANGE for timeline reads
GitHub: Session Storage
• User sessions stored as Redis Hashes
• 100M+ active sessions
• 30-minute session TTL
• Multi-datacenter replication
Pattern: HSET for session data, EXPIRE for auto-cleanup
Pinterest: Real-time Analytics
• Pin engagement tracking with Sorted Sets
• Real-time leaderboards and trending
• 1B+ operations per day
• HyperLogLog for unique counts
Pattern: ZADD for scores, ZREVRANGE for top items
Airbnb: Rate Limiting
• API rate limiting with sliding windows
• User action throttling
• Distributed counter with INCR
• 10K+ requests per second
Pattern: INCR with EXPIRE for sliding window rate limits
💡 Key Takeaways
- • Choose the right data structure: Strings for simple caching, Hashes for objects, Lists for queues
- • Set appropriate TTLs: Balance between performance and data freshness
- • Use pipelining: Batch commands to reduce network round trips
- • Monitor memory usage: Configure maxmemory and eviction policies
- • Plan for persistence: Choose between RDB snapshots and AOF based on durability needs
📝 Redis Mastery Quiz
1 of 6Current: 0/6