suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - Warum ist „flush_all“ von Memcached so konzipiert, dass es nur Schlüssel, aber keine Werte löscht?

Das Nichtlöschen des Werts bedeutet, dass der Wert weiterhin Speicherplatz belegt und ohne den Schlüssel nicht auf die Existenz dieser Werte zugegriffen werden kann. Was bedeutet das?

PHP中文网PHP中文网2712 Tage vor560

Antworte allen(1)Ich werde antworten

  • 迷茫

    迷茫2017-06-12 09:22:27

    你可以看一下这篇文章:

    Lazy Expiration

    memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。 这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。

    flush_all只做一件事:把所有键值标记为已过期,但并不回收内存。因为当时没有回收内存这个必要。只有当下一次用户访问同一键值时,memcached才检查键值,这时发现此键值已过期,于是回收对应此键值的内存。这样做的目的是为了最大限度的节省CPU时间。

    Antwort
    0
  • StornierenAntwort