Java 当Hibernate已经存在并使用缓存时使用memcached
我想知道,由于市场上存在hibernate ORM,其中包含了缓存功能,可以减少应用程序中的数据库负载,那么像Redis/Memcached这样的外部缓存系统还有什么可用性,因为它们还提供缓存机制 由于我们的对象已经在应用程序中使用hibernate进行缓存,那么外部缓存系统的可用性如何呢。它们对应用程序性能有何帮助Java 当Hibernate已经存在并使用缓存时使用memcached,java,hibernate,caching,redis,memcached,Java,Hibernate,Caching,Redis,Memcached,我想知道,由于市场上存在hibernate ORM,其中包含了缓存功能,可以减少应用程序中的数据库负载,那么像Redis/Memcached这样的外部缓存系统还有什么可用性,因为它们还提供缓存机制 由于我们的对象已经在应用程序中使用hibernate进行缓存,那么外部缓存系统的可用性如何呢。它们对应用程序性能有何帮助 当hibernate已经将类对象保存在内存中时,我们是否也应该将类对象存储在memcached/redis中?或者memcached是否应该仅用于存储通常不会更改的列表结果,而不是
当hibernate已经将类对象保存在内存中时,我们是否也应该将类对象存储在memcached/redis中?或者memcached是否应该仅用于存储通常不会更改的列表结果,而不是可以从hibernate缓存中获取的对象?hibernate ORM提供了两个级别的缓存 -一级缓存:与每个会话对象关联的进程内缓存,限于会话级别,即每个会话都有自己的一级缓存 -二级缓存:需要配置的可插拔缓存。它是会话工厂级缓存,即在多个会话之间共享 缓存解决方案,如memcached/redis,或例如,为hibernate提供了二级缓存提供程序,可在hibernate应用程序中配置。使用这样的缓存提供程序,您可以在hibernate应用程序中集成分布式缓存功能,比如缓存可以在多个会话之间共享,也可以在使用同一数据库的多个应用程序之间共享 请记住,当使用分布式缓存作为hibernate二级缓存时,您只需配置缓存提供程序并将实体配置为可缓存,hibernate本身将使用该提供程序进行缓存。e、 g.您可以看到如何使用Hibernate配置Tayzgrid。同样,您可以配置任何其他缓存解决方案
尽管Hibernate二级缓存提供程序让您很容易将二级缓存合并到Java应用程序中,但请记住,您将只获得缓存解决方案功能的子集。但是,如果您通过少量编程工作直接调用缓存解决方案的API,您将获得该解决方案提供的所有功能。与Tayzgrid一样,直接API调用将为您提供额外的功能,如批量操作、组和标记、类似sql的搜索和后置写等。这取决于应用程序的类型 在现代web应用程序中,有很多缓存源:
- 优化图像
- 模板系统中呈现的html片段
- 由多个数据库对象组合而成的对象
- 选择不经常更改的列表(国家/地区、租户、客户地址)
- 完整的搜索结果