Usually I just keep the key and only start caching when performance becomes a problem. As soon as you start caching data, you introduce the possibility of errors due to outdated data - you must be sure that you will invalidate the cache when the data changes.
I do object caching in instances of my objects, however, to make sure that I request only once per page request (except when necessary).
source share