在NoSql之上使用IMDG真的能提高应用程序的性能吗?



在NoSql数据库(MongoDB)之上使用IMDG层(Gemfire, HazelCast)是否可以提高应用程序的性能和可扩展性?

也许吧。一如既往,"视情况而定"

什么?主要是数据的特征和数据访问模式。需要考虑的几个因素(很多!)可能是:

  • 你有多少数据,它是可行的和/或成本效益,甚至尝试缓存它的一部分在内存中?

    • 是否存在候选缓存的数据的"热"子集?例如,在社交应用中,最后x小时的数据驱动了几乎所有的负载。
  • 您需要达到多少缓存命中率才能从缓存中获益?(这取决于你的应用对延迟的敏感性)

  • 读/写之间的比率是多少?

  • 一致性和可靠性要求是什么?

  • 你的应用程序做什么类型的读取?复杂的查询吗?简单的会吗?哪种组合?

如果使用得当,缓存层可以非常有效。但它们不是灵丹妙药。不要指望在你现有的商店上贴上一个,就能神奇地"更快"或"更可扩展"……

最新更新