自己做个网站需要几个软件,买好域名和云主机后怎么做网站,网站开发费 会计科目,惠州仲恺住房和城乡建设局网站缓存解决了各种各样的性能问题。 有很多方法可以将缓存集成到我们的应用程序中。 例如#xff0c;当我们使用Spring时#xff0c;可以轻松使用Cacheable支持。 非常简单#xff0c;但我们仍然必须配置缓存管理器#xff0c;缓存区域等。有时#xff0c;就像用大锤砸破坚果… 缓存解决了各种各样的性能问题。 有很多方法可以将缓存集成到我们的应用程序中。 例如当我们使用Spring时可以轻松使用Cacheable支持。 非常简单但我们仍然必须配置缓存管理器缓存区域等。有时就像用大锤砸破坚果一样。 那么我们该怎么做才能“打火机”呢 有一种称为记忆的技术。 从技术上讲它就像馅饼一样容易但真正的天才在于简单。 模型解决方案如下所示 public Foo getValue() {if (storedValue null) {storedValue retrieveFoo();}return storedValue;
} 如您所见手动实现它没有问题但是只要我们记得DRY规则我们就可以使用已经实现的解决方案该解决方案还提供了线程安全性。 很好的主意是使用Guava库。 // create
SupplierFoo memoizer Suppliers.memoize(this::retrieveFoo);// and use
Foo variable memoizer.get(); 有时就足够了但是如果我们需要为值指定TTL怎么办 我们只需要存储缓存取回的值几秒钟并且在超过定义的持续时间后再获得一次该值 我们可以再使用一次Guava提供的功能。 SupplierFoo memoizer Suppliers.memoizeWithExpiration(this::retrieveFoo, 5, TimeUnit.SECONDS); 上一行建立了TTL 5秒的备忘录。 如您所见-简单……但功能强大 翻译自: https://www.javacodegeeks.com/2014/11/need-micro-caching-memoization-to-the-rescue.html