Guava cache on portlet doView method

I’m trying to cache a JSON response in a portlet, I tried to use Guava Cache and I’m able to cache it within the same portlet lifecycle, but when I reload the page (i.e. call again the doView render method) the Cache instance is created again, and the first call to the webservice is executed. I want to be able to store that JSON in memory for some time (hours) regardless of how many “render” actions the portlet goes through, is this possible with Guava? or I need to use some other tool like EhCache to persist it somewhere? I would like to store it in memory but independent of the WebApplication (portlet instance)

I’m following the Guava’s example

LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
   .maximumSize(1000)
   .build(
       new CacheLoader<Key, Graph>() {
         public Graph load(Key key) throws AnyException {
           return createExpensiveGraph(key);
         }
       });
...

try {
  return graphs.get(key);
} catch (ExecutionException e) {
  throw new OtherException(e.getCause());
}

appreciate the help!

thanks!