由於 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文件等。
答案2
Memcache是非持久性快取(整個想法是補充MySQL等數據提供者並快取最常用的數據,而不是完全取代它們),因此您所要求的無法實現。
關於「持久記憶體快取」的爭論本身就是一堆蠕蟲,因為有些人堅持認為,如果您建立“持久記憶體快取”,那麼它就不再是“快取”。
有關更多詳細資訊(比我在這裡可以提供的更多),請查看這個 StackOverflow 帖子。