memcache はすべてを RAM に保存するため、ノードが障害から回復すると保存内容が失われます。memcache は起動後にスクリプトを呼び出すフックを提供していますか? そのスクリプトで「何か」、つまり外部サービスにアクセスするなどしてキャッシュを再読み込みしたいと考えています。Ubuntu 11 を使用しています。
答え1
Ubuntu を実行しているので、memcache タスクを Upstart 構成にラップできます。
起動後にスクリプトを呼び出すための「フック」memcached
は、post-start
Upstart 構成のセクション。
設定は次のようになります。
# 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
Upstart のドキュメントなどを確認してください。もちろん、/etc/init.d から memcached 起動スクリプトを削除する必要があります。
答え2
Memcache は非永続的なキャッシュです (MySQL などのデータ プロバイダーを補完し、最もよく使用されるデータをキャッシュするのが目的で、完全に置き換えるものではありません)。そのため、求めているものは実現できません。
「永続的なmemcache」をめぐる議論は、それ自体が厄介な問題である。一部の人々「永続的な memcache」を構築すると、それはもはや「キャッシュ」ではなくなるという点に留意してください。
詳細は(ここで紹介できる以上の情報があります)このStackOverflowの投稿。