代码之家  ›  专栏  ›  技术社区  ›  ctor

有限时间存储数据:memcache与mysql

  •  1
  • ctor  · 技术社区  · 7 年前

    我需要在有限的时间内(最多24小时)存储一些数据,这段时间内可能无法访问。我可以使用memcache和mysql来实现这一点-

    1. 内存缓存

    2. :创建一个表来存储此数据,并维护一个作业以在到期后继续存档此数据。相对来说,速度会慢一些。

    我应该用哪一个?这是memcache的有效用例吗?(由于memcache用于存储访问频率很高的数据)

    请建议是否有其他选项可用于存储此类临时数据。

    1 回复  |  直到 7 年前
        1
  •  1
  •   pratikvasa    7 年前

    我认为memcache对你的情况来说不太可靠。Memcache是一个缓存,如果对象开始变满,缓存可能会逐出该对象,此外,您不会知道该对象已被删除。因此,如果物体不存在,你无法确定它是否因为驱逐而不存在,或者因为你实际上没有把它放在那里。

    此外,如果您大量使用memcache,并且memcache的利用率约为75%(这意味着您的memcache已满),那么我建议不要使用memcache。由于数据不被使用,很可能会很快被逐出。如果这对你来说都不是问题,那么你可以使用memcache。

    您可以尝试的另一个选项是mongodb或其他一些数据库,在那里您可以选择ttl(生存时间)。优点是,您可以确保在ttl之前没有驱逐。