I just wonder if there is any caching solution available in Scala.
I’m looking for something like it is provided by Guava in Java.
Should I use Guava too in Scala?
Is there a wrapper / pimp in Scalaz or something similar?
Any alternative more appropriate for Scala devs?
What Guava provides:
LoadingCache<Key, Graph> CACHE= CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.removalListener(MY_LISTENER)
.build(
new CacheLoader<Key, Graph>() {
public Graph load(Key key) throws AnyException {
return createExpensiveGraph(key);
}
});
Supplier<Animal> singleAnimalCache = Suppliers.memoizeWithExpiration(animalFromDbSupplier(), 365, TimeUnit.DAYS);
I need some basic cache management like in Guava.
In Scalaz 7 there’s
Memo, which I covered a bit in learning Scalaz day 16.It’s the first thing Adam Rosien covered in scalaz “For the Rest of Us” talk, so check that out too. He’s using Scalaz 6.