Поскольку memcache хранит все в оперативной памяти, он теряет свое хранилище после восстановления узла после сбоя. Предлагает ли memcache ловушку для вызова скрипта после его запуска? Мы хотим, чтобы этот сценарий "что-то" делал, либо обращался к внешней службе, и т.д., чтобы перезагрузить кеш. Мы используем Ubuntu 11.
Поскольку вы используете 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 и т. Д. Вам, конечно же, потребуется удалить сценарий запуска memcached из /etc/init.d.
Memcache - это непостоянный кеш (вся идея состоит в том, чтобы дополнить поставщиков данных, таких как MySQL, и кэшировать наиболее часто используемые данные, а не заменять их полностью), поэтому то, о чем вы просите, не может быть достигнуто.
Спор о «постоянном кэше памяти» - это баня червей, так как некоторые люди утверждайте, что если вы создаете «постоянный кэш памяти», то он больше не является «кешем».
Для получения дополнительной информации (гораздо больше, чем я могу предоставить здесь), посетите это сообщение StackOverflow.