我在memcache中缓存了大型对象(20KB) -
Product :
{
BasicInfo, //~5KB
SellerId, //int
CityId, //int
AdditionalInfo //~15KB
}
可以在多个地方访问 -
所以我们在第一和第二种情况下不必要地获取整个对象,而我们只需要一些字节。我应该将它们分别存储在memcache中(唯一的问题是我需要在更新时使多个键无效)?
有没有更好的方法来处理这些案件?
答案 0 :(得分:0)
这里要考虑两个方面,以及它们之间的权衡。
如何存储小颗粒数据将减少访问时间,即为什么复杂对象需要更多时间?
要在memcache中存储任何值,必须对其进行序列化和反序列化。对象越复杂,它将为应用程序端添加更多的序列化和反序列化处理。
在生产中常见的是将memcache放在单独的机器中(相同的n / w或不同的n / w)。在这种情况下,由于网络i / o和往返时间的原因,较大的数据大小会增加延迟。
使用完整对象或多个粒度对象是一种权衡。
在我们的例子中,我们主要为缓存数据使用缓存是高频率读取并且很少更新。我们存储粒度级对象。