Redis Data Structures Beyond Simple Key-Value
Redis is more than a cache. Sorted sets, streams, and HyperLogLog solve problems that key-value can't.
Key Insights
- Sorted sets enable leaderboards, rate limiters, and priority queues natively
- Redis Streams provide durable, consumer-group-based message processing
- HyperLogLog counts unique items using only 12KB regardless of cardinality
Sorted Sets for Leaderboards
ZADD leaderboard 1500 "player:1"
ZADD leaderboard 2200 "player:2"
ZADD leaderboard 1800 "player:3"
# Top 10 players
ZREVRANGE leaderboard 0 9 WITHSCORES
# Player rank
ZREVRANK leaderboard "player:1"
Streams for Event Processing
# Produce events
XADD orders * product "widget" quantity 5
# Consumer group
XGROUP CREATE orders processors $ MKSTREAM
XREADGROUP GROUP processors worker1 COUNT 10 BLOCK 5000 STREAMS orders >
HyperLogLog for Unique Counts
PFADD daily_visitors "user:123" "user:456" "user:789"
PFCOUNT daily_visitors # ~3, using only 12KB