If you want cache to survive reboots, you need to store all of the state externally, including any timeout/expiry conditions. One way to do it is to store the timeout (UTC) times together with the cache entry metadata. So an entry in your (simplified) cache collection would look like:
```
{
"data": payload,
"metadata": {
"type": "something",
"timeout": "2015-07-15T07:11:23.079Z"
}
You'd need a load and store procedures too for the cache server which would recover all this and serialize/deserialize data, I guess.