缓存

java – Hibernate查询缓存在外部更新时自动刷新?

我正在创建一个对数据库具有只读访问权限的服务.在Hibernate中,我有一个查询缓存和二级缓存启用,以加快服务速度,因为访问的表很少变化.我的问题是,如果有人进入DB并手动更改表,缓存是否自动识别需要清除?缓存有时间限制吗?解决方法不,缓存不会扫描数据库,以便您在底层数据更改时神奇地更新自身.不会通过L2缓存进行的更改不会出现在其中.超时等待多长时间取决于您的提供商以及默认设置.看起来默认的ehcache.xml是2分钟.

java – 创建新线程有没有刷新缓存的副作用?

我想知道在Java中创建新线程是否会触发缓存刷新.假设我按照以下顺序执行此类操作:>线程运行并设置变量X.>线程创建一个新线程.>新线程访问X.我的问题是:是新线程,无论是在创建时还是在开始执行时,都保证看到步骤1中旧线程对X进行的更新?

java – spring-boot-devtools从缓存中获取ClassCastException.

我从缓存中获取价值时遇到问题.缓存配置并附有注释我正在使用com.google.code.simple-spring-memcached3.5.0值正在缓存但是在获取应用程序时会抛出类转换错误.什么是可能的问题.Fullstacktrace解决方法这是aknownlimitationofDevtools.当反序列化高速缓存条目时,该对象没有附加到正确的类加载器.您可以通过多种方式解决此问题:>在开

并发 – 单个进程可以在多个核心中运行吗?

单个进程可以在不同的核心上运行不同的线程吗?解决方法是的,单个进程可以在不同的核心上运行多个线程.缓存特定于硬件.许多现代英特尔处理器都有三层缓存,其中最后一级缓存在内核之间共享.这并不意味着非共享缓存是冗余的,但它确实对多核性能有影响.特别是,如果一个核心更新当前位于另一个核心的专用高速缓存中的地址空间中的值,则必须运行高速缓存一致性协议以确保另一个核心不再能够读取过时值.

我应该使用哪个Java集合来实现线程安全缓存?

还是会那么清醒的呢?我正在查看LinkedHashMap类.通过一些修改,它对MRU缓存看起来很有前途.任何其他建议?无论我使用哪个集合,我应该尝试手动修剪LRU值,还是可以信任虚拟机偏倚回收最近访问的对象?

Java applet永远缓存,而不是下载新版本?

我们有一个案例,客户似乎永远缓存applet的版本.我们正在使用在我们的中正确标记标签,或者我们认为.我们从7.1.0.40的版本字符串转到7.1.0.42,这只触发了大约一半客户的下载.客户端运行的JRE版本似乎并不重要.我们已经看到人们在1.4,1.5和1.6上遇到这个问题.有没有人有显式缓存版本的经验?是否更可靠地工作而不是依赖于cache_archive的“Last-Modified”和/或“Content-Length”值?

java – 通过接口上的注释使@Cachable条目无效?

我正在使用spring和@Cacheable注释来缓存一些数据库条目.我想定期使完整缓存无效.因此:将这些注释放在接口方法上是否有效?或者这些注释必须放在类方法上?如果我在接口方法上有@Cacheable,在服务中有@Cacheevict,则应用程序会成功启动.如果我使用上面的代码,它不起作用.但也许我也做错了?

java – 字节数组缓冲图像转换速度慢

我有一个简单的服务器端代码,它接收一个表示JPEG格式图像的字节数组,并返回图像的尺寸.它有效,但问题是它的速度慢得令人无法接受.对于100KB的图像,它需要6s.对于900KB的图像,它需要30秒.这是预期的吗?有没有办法让字节数组更快地进行bufferedImage转换?