gpt4 book ai didi

hibernate - NHibernate 和 Memcached - 应该启用 use_minimal_puts 吗?

转载 作者:行者123 更新时间:2023-12-04 00:52:59 25 4
gpt4 key购买 nike

我使用带有 Memcached 的 NHibernate 作为二级缓存,并且一直对 cache.use_minimal_puts 感到好奇。配置选项。

根据文档:

hibernate.cache.use_minimal_puts: Optimizes second-level cache operation to minimize writes, at the cost of more frequent reads. This setting is most useful for clustered caches and, in Hibernate3, is enabled by default for clustered cache implementations.



需要明确的是,我没有在集群环境中运行 Memcached,但它确实在远程机器上运行。另一个需要考虑的因素可能是读取和写入 Memcached 的速度是否存在重大差异。

我会受益于启用 cache.use_minimal_puts在这种情况下?

最佳答案

我没有 NHibernate 的经验,但在 Hibernate 中使用过二级缓存,我被告知相同的概念适用于两者。

提供参数 背后的基本思想hibernate.cache.use_
minimum_puts
是在 hibernate 将对象放入缓存之前,它首先检查二级缓存是否已经存在该对象,如果没有,则只将其放在那里。

这会很有帮助 当从缓存读取数据比数据更新成本低得多时。这就是文档对以下内容的含义

...optimization of second-level cache operation to minimize writes, at the cost of more frequent reads.



非常适合这种优化的情况是集群中的复制。

如果您使用集群,那么 put 操作非常昂贵,因为它会在集群缓存的情况下激活缓存复制监听器。如果你不使用集群,那么这个 put 操作相对来说非常便宜。

即使在集群的情况下,也可能存在依赖于实体失效的缓存提供程序,而不是复制对它们所做的更改。在这种情况下,此参数也将毫无用处。

影响性能的一个因素是 Memcache 使用的复制(同步或异步)类型。我没有使用过 MemCache,但 EhCache 支持这两种模型。

所以你的情况是 不是 使用集群,虽然缓存在远程进程上,但我严重怀疑将此参数设置为 true 是否会带来任何性能优势。

关于hibernate - NHibernate 和 Memcached - 应该启用 use_minimal_puts 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12109864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com