hibernate(以及hibernate上的 Package 器jpa)提供了两级缓存机制。a) 1级缓存,位于会话对象层/级别b)2级缓存,位于会话工厂层/级别如果我使用的是redis或ehcache之类的外部缓存,那么这个缓存位于上面的哪个位置呢。或者我应该禁用二级缓存来启用redis/ehcache。不确定外部缓存与1级和2级缓存的匹配方式和位置。或者-可能有各种配置吗?有人能解释一下吗。提前谢谢。
qoefvg9y1#
一级缓存被认为是本地内存缓存,也可以是本地redis/memcache缓存。第二级缓存类似于一个代理服务器,它缓存查询的结果,来自任何服务器的所有子队列查询都将提供缓存中的结果(如果可用)。级别1缓存结果仅对一台服务器可用,其中级别2缓存可以视为对所有服务器可用的分布式缓存。如果应用程序只在一个服务器/示例上运行,那么使用2级缓存是没有意义的。你可以考虑为你的数据库使用代理服务器,例如如果你使用mysql,那么你可以考虑使用proxysql,mysql代理等等。
1条答案
按热度按时间qoefvg9y1#
一级缓存被认为是本地内存缓存,也可以是本地redis/memcache缓存。第二级缓存类似于一个代理服务器,它缓存查询的结果,来自任何服务器的所有子队列查询都将提供缓存中的结果(如果可用)。
级别1缓存结果仅对一台服务器可用,其中级别2缓存可以视为对所有服务器可用的分布式缓存。如果应用程序只在一个服务器/示例上运行,那么使用2级缓存是没有意义的。
你可以考虑为你的数据库使用代理服务器,例如如果你使用mysql,那么你可以考虑使用proxysql,mysql代理等等。