A WordPress transients query that bypassed object-cache.php

Even with Redis object caching enabled via object-cache.php, our database CPU spiked to 100% every hour due to a full table scan query against wp_options.

// Offending plugin code:
$wpdb->get_results(
    "SELECT option_name, option_value FROM {$wpdb->options} 
     WHERE option_name LIKE '_transient_timeout_%' AND option_value < UNIX_TIMESTAMP()"
);

// Correct fix: When Redis object cache is loaded, transients are in Redis!
// Direct SQL queries to wp_options for transients are meaningless and expensive.

When an external object cache is active, set_transient stores values directly in Redis memory without ever touching wp_options. Plugins attempting to "clean" expired transients with SQL queries do nothing except scan hundreds of thousands of unrelated options rows.