Maison  >  Questions et réponses  >  le corps du texte

php - Pourquoi Flush_all de Memcached est-il conçu pour supprimer uniquement les clés mais pas les valeurs ?

Ne pas supprimer la valeur signifie que la valeur occupe toujours l'espace mémoire, et sans la clé, l'existence de ces valeurs n'est pas accessible.

PHP中文网PHP中文网2710 Il y a quelques jours557

répondre à tous(1)je répondrai

  • 迷茫

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

    Vous pouvez consulter cet article :

    Expiration paresseuse

    Memcached ne surveille pas en interne si l'enregistrement a expiré, mais vérifie l'horodatage de l'enregistrement lors de son obtention pour vérifier si l'enregistrement a expiré. Cette technique est appelée expiration paresseuse. Par conséquent, memcached ne consomme pas de temps CPU lors de la surveillance de l'expiration.

    flush_all ne fait qu'une chose : marque toutes les valeurs clés comme expirées, mais ne récupère pas la mémoire. Parce qu’il n’était pas nécessaire de reconquérir la mémoire à cette époque. Ce n'est que lorsque l'utilisateur accèdera à la même valeur de clé la prochaine fois que memcached vérifie la valeur de clé. À ce moment, il s'avère que la valeur de clé a expiré et la mémoire correspondant à la valeur de clé est recyclée. Le but est d’économiser au maximum le temps CPU.

    répondre
    0
  • Annulerrépondre