I think the following bloc-post describes exactly what you ask about: http://samsonasik.wordpress.com/2012/09/27/zend-framework-2-using-zendcache-and-hydratingresultset-to-save-database-resultset/
In short:
- instantiate cache storage instance
- look in cache
- If not in cache
- load from db (retrieve instance of ResultSet)
- convert ResultSet into serializable data structure (like an array)
- write serializable data structure to cache
- if in cache you'll get the serializable data structure
- handle data (no longer an instance of ResultSet)