限时存储数据:memcache vs mysql

Store data for a limited time: memcache vs mysql

我需要在有限的时间内(最多 24 小时)存储一些数据,在这段时间内可能会或可能不会访问这些数据。为此,我可以同时使用内存缓存和 mysql-

  1. Memcache : 在memcache 中设置一个key 过期时间。这将是非持久的,但我可以使用它。访问数据会更快。

  2. MySql :创建一个 table 来存储此数据并维护一个作业以在到期时间后继续归档此数据。相对来说会慢一些。

我应该使用哪一个?这是内存缓存的有效用例吗? (因为memcache是​​用来存放访问频率很高的数据)

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

我认为内存缓存对于您的情况不是很可靠。 Memcache 是一个缓存,如果对象开始变满,缓存可能会驱逐对象,而且您不会知道该对象已被删除。因此,如果对象不存在,您无法确定它不存在是因为被驱逐还是因为您实际上没有将它放在那里。

另外,如果你大量使用memcache并且memcache的利用率大约是75%(这意味着你的memcache已满)那么我建议不要使用memcache。很有可能数据会因为未使用而被快速驱逐。如果这对您来说不是问题,那么您可以使用内存缓存。

您可以将此数据存储在 mysql 中。这是一个不错的选择。

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