Take a read on: http://ez.no/doc/ez_publish/technical_manual/3_8/reference/template_functions/miscellaneous/cache_block
On cache blocks that don't have to expire right away when new content is published I would recommend using 'expiry' in combination with 'ignore_content_expiry'.
For content that should expire on publish, you can fine tune it with 'subtree_expiry' to make it only expire on specific subtrees.
Both of these could and should be combined with 'keys' of course, if you have variables that are used inside the block.