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

Liked this? There's more.

Every week: one practical technique, explained simply, with code you can use immediately.