After adding data to nodes using hook_node_load(), will this data be saved in the cache? When using hook_load() or hook_node_load() to add information to the node object, is it possible to have this data stored in the cache? I'd like to add several different pieces of data and it would be difficult / impossible to get this data in one database query, however, if it's caching the data with the rest of the node object, it should be fine. How do I do this if it doesn't already?

thanks!
First of all, you generally don't want to implement hook_load() and hook_node_load() for the same node type. So just FYI.

Secondly: There's a bunch of different caching you could mean... The caching you implement depends on why you need it.

If you trace back the functions that call hook_node_load(), you end up at NodeController::attachLoad(). It just invokes the hooks and then bails to its superclass, DrupalDefaultEntityController. Basically this means that node itself doesn't do any caching.

This gives you a few options:

1) Come up with your own caching system for your own subset of the node's data, which means that you have to mark all nodes using it as uncacheable, since you're caching a little bit of it.

2) Install EntityCache. :-) EntityCache does what you'd do anyway but does it for the whole node entity at the entity layer.

BUT... If the real problem we're solving here is to have a next and previous reference per node, then you want EntityReference, which lets you set that up as fields, and which can then be used with Views and whatnot, for free, without coding anything. :-)