我有一個站點地圖上有大約150K頁的站點。我正在使用站點地圖索引生成器來製作站點地圖,但實際上,我需要一種緩存方式,因爲在我的服務器上構建150個站點地圖,每個站點地圖都是很殘酷的[1]。如何在django中高效地服務大量的站點地圖
我可以緩存每個這些網站地圖頁面與memcached,這就是我在網站上的其他地方......但是,這是如此之多的站點地圖,它會完全填滿memcached ....因此,工作。
我認爲我需要的是一種使用數據庫作爲這些緩存的方式,並且只有在它們發生變化時纔會生成它們(這是因爲站點地圖索引意味着只更改最新的幾個站點地圖頁面,因爲其餘部分總是相同的。)[2]但是,就我所知,我只能用django使用一個高速緩存後端。
如何在Google來到「a-crawlin」時準備好這些站點地圖,而不會殺死我的數據庫或memcached?
有什麼想法?
[1]我已將它限制爲每個站點地圖頁面1,000個鏈接,因爲生成最多50,000個鏈接,但沒有發生。
[2]例如,如果我有sitemap.xml?page = 1,page = 2 ... sitemap.xml?page = 50,我只需要更改sitemap.xml?page = 50,直到它充滿1,000鏈接,那麼我可以它幾乎永遠,集中51頁上,直到它的全部,它緩存永遠等
編輯,2012-05-12:這仍然是一個問題,並且在將它與文件緩存一起使用約一年後,我終於放棄了Django的站點地圖框架。相反,我現在使用Solr在一個非常簡單的視圖中生成我需要的鏈接,然後將它們傳遞給Django模板。這大大簡化了我的站點地圖,使他們表現得很好,我現在達到約2,250,000個鏈接。如果你想這樣做,只需查看網站地圖模板 - 這一切都非常明顯。你可以在這裏看到這裏的代碼:https://bitbucket.org/mlissner/search-and-awareness-platform-courtlistener/src/tip/alert/casepage/sitemap.py
不,它們適用於機器人。請不要忽視它們。詳細信息:sitemaps.org – mlissner 2010-05-11 02:28:12