Using the steps explained on [A Beginner's Guide to Caching Data in Drupal 7][1], I'm storing an array with a specified expiration time.

`cache_get()` is still returning stale cache, when the expiration time is passed. Even Cron is not deleting the cache entry. (I've checked the *cache_block* table.)

This is the code I am using.

```php
$out = &drupal_static(__FUNCTION__);
        
if (!isset($out)) {
  if (($cache = cache_get(__FUNCTION__,'cache_block'))) {
    $out = $cache->data;
    dsm("cache returned");
  }
  else {
    // Do something.
    $out = '<ul style="list-style:none;padding-right:20px">' . $out . "</ul>";
    cache_set(__FUNCTION__, $out, 'cache_block', strtotime("23:59:59")+2);
  }
}
    
return $out;
```

Only "cache clear all" in the *Performance* tab is clearing this cache entry.

In that article I can read this.

> Expired entries will be automatically discarded as they pass that date.

That does not seem to happen, although I've verified that the "expire" value in the cache table is beyond the current time.

I can clear the cache myself, but then `cache_get()` does not return the "expire" time in the table. 

Anything I'm missing here?






  [1]: https://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7