Kann Memcache ein Skript aufrufen, um sich nach dem Start unter Ubuntu neu zu laden?

Kann Memcache ein Skript aufrufen, um sich nach dem Start unter Ubuntu neu zu laden?

Da Memcache alles im RAM speichert, geht der Speicher verloren, wenn ein Knoten nach einem Ausfall wiederhergestellt wird. Bietet Memcache einen Hook, um nach dem Start ein Skript aufzurufen? Wir möchten, dass dieses Skript „etwas“ tut, entweder einen externen Dienst aufruft usw., um den Cache neu zu laden. Wir verwenden Ubuntu 11.

Antwort1

Da Sie Ubuntu verwenden, können Sie Memcache-Aufgaben in eine Upstart-Konfiguration einbinden.

Der "Hook" zum Aufrufen eines Skripts nach memcacheddem Start wäre in derpost-startAbschnitt der Upstart-Konfiguration.

Ihre Konfiguration sieht dann ungefähr so ​​aus:

# memcached - in-memory cache
#
description "memcached"

start on (local-filesystems and started networking)
stop on runlevel [!2345]

respawn

pre-start script
  test -x /usr/bin/memcached || { stop; exit 0; }
end script

exec /usr/bin/memcached -v -m 64 -p 11211 -u nobody -l 127.0.0.1

post-start script
  /usr/local/bin/populate-memcache.sh
end script

Bitte überprüfen Sie die Upstart-Dokumentation usw. Sie müssen natürlich das Memcached-Startskript aus /etc/init.d entfernen.

Antwort2

Memcache ist ein nicht persistenter Cache (die Grundidee besteht darin, Datenanbieter wie MySQL zu ergänzen und die am häufigsten verwendeten Daten zwischenzuspeichern, nicht sie vollständig zu ersetzen). Ihre Forderung kann daher nicht erfüllt werden.

Der Streit um 'persistenten Memcache' ist an sich schon eine Büchse der Pandora, denneinige Leutebehaupten, dass wenn Sie einen „persistenten Memcache“ erstellen, es sich nicht mehr um einen „Cache“ handelt.

Weitere Einzelheiten (viel mehr, als ich hier angeben kann) finden Sie unterdieser StackOverflow-Beitrag.

verwandte Informationen