No, you can use angular-cache to do anything $cacheFactory can do. You said you hadn't tried angular-cache, that's why I gave an example that doesn't use it.
Here's an example that uses angular-cache:
var postsCache = $angularCacheFactory('postsCache', { maxAge: 3600000, deleteOnExpire: 'aggressive' );
then, somewhere else:
$http.get('/posts/13', { cache: postsCache });
$http.get('/posts/76', { cache: postsCache });
then, somewhere else / later:
wait an hour, because postsCache defined above deletes items that are more than an hour old: