在Ubuntu上启动后,memcache是​​否可以调用脚本来重新加载自己的脚本?

由于memcache将所有内容都存储在ram中,所以在节点从故障中恢复后,它将会丢失存储。 memcache在启动后提供一个钩子来调用脚本? 我们希望该脚本执行“某些事情”,或者命中外部服务等来重新加载caching。 我们正在使用Ubuntu 11。

由于您正在运行Ubuntu,因此可以将Memcache任务包装到Upstartconfiguration中。

memcached启动之后调用脚本的“钩子”将位于Upstartconfiguration的post-start部分。

您的configuration将如下所示:

 # 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启动脚本。

Memcache是​​非永久性caching(整个想法是补充MySQL等数据提供者,并caching最常用的数据,而不是完全替代它们),所以你所要求的是无法实现的。

关于“永久性内存caching”的争论本身就是一堆蠕虫,因为有人认为如果你构build了“持久性内存caching”,那么它就不再是“caching”了。

有关更多详细信息(比我能在这里提供的更多),看看这个StackOverflow后 。