我正在使用Hibernate和L2缓存机制。我遇到了一个案例,如果数据库表中的数据为空,则L2缓存不起作用,并且每次调用都会进入数据库,因为在L2缓存中找不到它。是行为还是错误?
答案 0 :(得分:0)
这是缓存的行为。即使数据库中有数据,如果在L2缓存中找不到数据,也会调用数据库。它没有错。
如果请求的数据包含在缓存中(缓存命中),则可以通过简单地读取缓存来提供此请求,这相对更快。否则(缓存未命中),必须重新计算数据或从其原始存储位置获取数据,这相对较慢。
检查Cache on Wikipedia。第一段自己会说清楚。