Broad strokes here:  

While there isn't a hook out there in pre-D8, you could write your own database backend based upon the standard `DrupalDatabaseCache` one and then write any or all sorts of logic into your `clear()` function.  A quick look would suggest this to be a reasonably straightforward in D7 (just copy the class to your custom name and modify it etc by throwing in a `module_invoke_all()` as appropriate) and with the `cache_backport` module would even work in D6.  Then point any cache bins you want fancified on clear and you should be on your way.