Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
像ehcache/redis这样的外部缓存在哪里适合w.r.t hibernate 1级/2级缓存?_Hibernate_Caching_Redis_Ehcache_Hibernate Cache - Fatal编程技术网

像ehcache/redis这样的外部缓存在哪里适合w.r.t hibernate 1级/2级缓存?

像ehcache/redis这样的外部缓存在哪里适合w.r.t hibernate 1级/2级缓存?,hibernate,caching,redis,ehcache,hibernate-cache,Hibernate,Caching,Redis,Ehcache,Hibernate Cache,Hibernate(以及Hibernate上的包装器JPA)提供了两种级别的缓存机制。 a) 位于会话对象层/级别的1级缓存 b) 处于会话工厂层/级别的2级缓存 如果我正在使用诸如redis或ehcache之类的外部缓存,那么这个缓存位于上面的哪个位置。 或者我应该禁用二级缓存以启用redis/ehcache。不确定外部缓存与1级和2级缓存的匹配方式和位置 或者-是否可以进行各种配置 有人能解释一下吗。提前感谢。级别1缓存被视为本地内存缓存,也可以是本地Redis/Memcache缓存。第二级

Hibernate(以及Hibernate上的包装器JPA)提供了两种级别的缓存机制。 a) 位于会话对象层/级别的1级缓存 b) 处于会话工厂层/级别的2级缓存

如果我正在使用诸如redis或ehcache之类的外部缓存,那么这个缓存位于上面的哪个位置。 或者我应该禁用二级缓存以启用redis/ehcache。不确定外部缓存与1级和2级缓存的匹配方式和位置

或者-是否可以进行各种配置


有人能解释一下吗。提前感谢。

级别1缓存被视为本地内存缓存,也可以是本地Redis/Memcache缓存。第二级缓存类似于缓存查询结果的代理服务器,来自任何服务器的所有子队列查询都将提供缓存的结果(如果可用)

级别1缓存结果仅对一台服务器可用,其中级别2缓存可以被视为对所有服务器可用的分布式缓存。如果您的应用程序仅在一台服务器/实例上运行,则使用2级缓存是没有意义的


您可以考虑使用代理服务器,例如,如果您使用MySQL,而不是考虑使用PROXYSQL、MySQL代理等。

谢谢您的响应。如果您感兴趣的话,类似的Q。如果你觉得这些答案有帮助,请接受它们。