ב-2010, Stack Overflow הצליחה לשרת 60 מיליון users בחודש על server אחד. לא כי הם גאונים - כי הם השתמשו ב-cache בצורה אגרסיבית. 95% מה-requests של Stack Overflow הם reads של content שלא משתנה לעתים קרובות. שאלה שנשאלה ב-2009 קיבלה תשובות ב-2009 - היא לא משתנה כל שנייה. במקום לעשות DB query לכל request, הם cach'ו תוצאות. הDB הפך ל-edge case, לא ל-bottleneck.
Caching הוא האמנות של לשמור תוצאות חישוב כדי לא לחשב אותן שוב. פשוט ברעיון, עמוק במימוש. כל טעות בcache strategy גוררת או stale data שmisleads users, או cache miss rate שמכה את הDB.
Twitter ב-peak traffic מגיש 99% מה-tweet reads ישירות מRedis cache. Facebook מריצה תשתית Memcached שמחזיקה פטבייטים של cache data פרוסים על עשרות אלפי servers. Google בנתה Bigtable בחלקה כדי להיות serving layer מהיר לcached results של חיפוש. Caching אינו optimization - הוא תשתית ליבה.
Stack Overflow היה נפוץ לציין בconferences שהcaching שלהם פשוט כl-כך: כמעט כל דף הוא cached HTML שלם. הם לא cache fragment אחד כאן ואחד שם - כל דף שאלה, כל profile page, הם HTML מלא שכתוב לcache כשהדף נוצר ומוגש ישירות. ה-dynamic element היחיד הוא ה-header שמציג notifications - וגם הוא cached עם TTL קצר. זה counter-intuitive עבור developers שרגילים ל-dynamic applications, אבל ה-insight נכון: רוב ה-content שאנשים קוראים לא משתנה. התשובה שניתנה לשאלה ב-2011 עדיין נכונה ב-2024. למה לrehide HTML לכל אחד מ-60 מיליון visitors בחודש?