google Guava Cache使用、缓存

(1)默认情况下,监听器方法是被同步调用的(在移除缓存的那个线程中执行)。如果监听器方法比较耗时,会导致调用者线程阻塞时间变长。解决这个问题的方法是:使用异步监听RemovalListeners.asynchronous(RemovalListener, Executor)
(2)创建cache的时候只能添加1个监听器,这个监听器对象会被多个线程共享,所以如果监听器需要操作共享资源,那么一定要做好同步控制。
(3)监听器中抛出的任何异常,在被记录到日志后,会被guava丢弃,不会导致监听器不可用。

总结
请一定要记住GuavaCache的实现代码中没有启动任何线程!!Cache中的所有维护操作,包括清除缓存、写入缓存等,都是通过调用线程来操作的。这在需要低延迟服务场景中使用时尤其需要关注,可能会在某个调用的响应时间突然变大。
GuavaCache毕竟是一款面向本地缓存的,轻量级的Cache,适合缓存少量数据。如果你想缓存上千万数据,可以为每个key设置不同的存活时间,并且高性能,那并不适合使用GuavaCache。

转载:https://blog.csdn.net/zhangjikuan/article/details/76408456
https://blog.csdn.net/zhangjikuan/article/details/76408578

你可能感兴趣的:(google Guava Cache使用、缓存)