存储单个大对象memcached的VS多个密钥(store single big object in

2019-09-27 17:53发布

我有以下的内存缓存缓存大对象(20KB) -

Product : 
{
    BasicInfo, //~5KB
    SellerId,  //int
    CityId,    //int
    AdditionalInfo //~15KB
}

这是在多个地方 - 被访问

  1. 在一些地方,只有sellerId或cityId是必需的。
  2. 在一些地方,只有basicInfo是必需的。
  3. 在一些地方,需要整个对象。

因此,我们在第一和第二的情况下不必要的取整的对象,而我们只需要一些字节。 我应该在内存缓存分开存放这些(唯一的问题是我需要在更新用无效多个密钥)?

有没有更好的方式来处理这些情况?

Answer 1:

有2个方面来考虑这里和它们之间的权衡。

  1. 时间访问缓存数据
  2. 数据的一致性

存储小颗粒状的数据如何,为什么复杂的对象是花更多的时间将缩短访问IE浏览器?

  1. 用于在内存缓存存储任何值,它必须被序列化和反序列化。 更复杂的对象,它会增加更多的处理序列化和反序列化应用@结束。

  2. 这是在生产中常见的有在一个单独的机器/ s的内存缓存(同一N / W或不同的n / w)的。 在这种情况下,更大的数据大小将由于网络I / O和往返时间加上延迟。

这是一个权衡使用完整的对象或多个颗粒状物体。

在本例中,我们使用缓存主要用于我们的缓存数据是高频率的读取和很少更新。 我们存储粒度级别的对象。



文章来源: store single big object in memcached vs multiple keys
标签: memcached