如何在Azure Redis缓存中高效缓存大型复杂对象



我们正在运行一个web应用程序,处理非常大的数据集,所以我们最初使用内存缓存。

然而,我们发现内存缓存无法处理这么多的数据,它删除了一些以前缓存的项目。因此,web应用程序的性能恶化,我们在Azure Redis中寻求解决方案。

经过一番挖掘,我们尝试了StackExchange。复述(v2.2.50)。我们使用IDatabase.StringSet()来设置数据,使用IDatabase.StringGet()来检索数据。问题是,由于我们需要存储一些复杂的类型,我们使用Newtonsoft.Json来序列化和反序列化对象,这确实影响了性能。

作为参考,我们要缓存的对象在序列化时长度为48000000个字符。

你有什么建议?

总是喜欢用小键/值大小。我们首先需要检查我们是否可以优化/重新设计我们的应用程序以使用较小的值。如果我们不更改应用程序,我们需要考虑其他方法来获得更好的性能。根据以下条款:

  • 应该针对大量的小值优化应用程序
  • 增加虚拟机的大小以获得更高的带宽能力
  • 增加连接对象的数量应用程序使用。

我希望您不会因为较大的值而面临超时问题,但如果您面临超时问题,您可能需要相应地增加连接超时。

最新更新