A travel search on a few of my sites took about six seconds every time someone started fresh, and I’d have sworn it was cached. It was, on the way in. The writer stored the key without a trailing underscore; the reader asked for it with one. A forked sibling plugin had the opposite bug, a doubled underscore, plus a read that had been commented out altogether. The fix is one function that builds the key for both sides, then a daily cron that warms the cache inside a time budget. A cache entry existing only proves the writer ran. The only proof a cache works is a hit.
Read more "The cache that was written every time and read never"
