Summary

EN: A Traditional Chinese article comparing Redis (key-value in-memory store) and MySQL (relational RDBMS), helping developers choose the right tool for their use case. Covers data model, performance characteristics, persistence options (AOF/snapshots), horizontal scaling, and typical use cases for each system.

ZH: 本文以繁體中文比較 Redis(記憶體鍵值存儲)與 MySQL(關聯式資料庫)的資料模型、效能特性、持久化機制(AOF/快照)、水平擴展能力與典型應用場景,協助開發者選擇適合的資料庫工具。

Key Points

  • Redis: in-memory, sub-millisecond latency, key-value model, supports strings/hashes/lists/sets/sorted sets
  • Redis persistence: AOF (append-only file) for durability; RDB snapshots for backup — but not true ACID
  • MySQL: disk-based, ACID transactions, complex queries (JOINs, aggregations), relational integrity via foreign keys
  • Horizontal scaling: Redis supports clustering natively; MySQL requires sharding strategies (as Instagram did)
  • Use cases: Redis → caching, sessions, rate limiting, pub/sub, leaderboards; MySQL → financial records, user data, complex relationships
  • Common pattern: Redis as cache layer in front of MySQL to reduce read load

Insights

  • The question is rarely Redis vs MySQL — it’s almost always Redis AND MySQL, with Redis as the fast-access layer
  • Redis’s AOF persistence gives durability guarantees most people don’t realize it has — it’s not purely volatile
  • The sorted set data structure makes Redis surprisingly powerful for leaderboards, time-series, and range queries

Connections

  • Connects to Instagram sharding: their PostgreSQL sharding strategy addresses the same horizontal scale problem MySQL faces
  • Spring Boot cache preheating article in this vault: Redis is the natural target for those caching strategies
  • Git LFS architecture also uses Redis — for credential caching in the LSST implementation

Raw Excerpt

“Redis 的核心優勢在於記憶體存儲帶來的極低延遲,但這也意味著資料量受限於可用記憶體。MySQL 則提供完整的 ACID 事務支援與豐富的查詢能力。實務上,最常見的架構是以 Redis 作為 MySQL 的快取層,兩者相輔相成。”