While the problem with `null`-value is valid, as a developer it's easy to learn one rule that `null` shouldn't be stored to cache.

This approach gives best possible performance and is simpler than any of the other ones. Caching rules (expiry time, dependencies etc.) could be set separately.