我試圖修改留言簿示例webapp以減少數據庫寫入的數量。使用memcache限制寫入數據庫的數量
我想實現的是將所有留言條目加載到我所做的memcache中。
但是我希望能夠直接用新的留言簿條目更新memcache,然後將所有更改以批量放入。()每30秒寫入一次。
有沒有人有我如何實現上述的例子?它真的會幫助我!
謝謝:)
我試圖修改留言簿示例webapp以減少數據庫寫入的數量。使用memcache限制寫入數據庫的數量
我想實現的是將所有留言條目加載到我所做的memcache中。
但是我希望能夠直接用新的留言簿條目更新memcache,然後將所有更改以批量放入。()每30秒寫入一次。
有沒有人有我如何實現上述的例子?它真的會幫助我!
謝謝:)
這是丟失數據的處方。我很難相信一本留言簿導致足夠的寫作活動成爲一個問題。此外,涉及此的簿記將是棘手的,因爲memcache不可搜索。
你想實現什麼叫做Write-Behind Caching,通常情況下,實施正確的方式並不是那麼容易,因爲它看起來很簡單。就我現在所知,Memcached/GAE在Python中沒有現成的解決方案,但你可以看看Stockpyle。它具有Write-Through Caching的一些基本功能(請參閱appengine.py和memcache.py),因此它可以作爲您自己的解決方案的基礎。
Memcache是如此易變的存儲來存儲有價值的數據,如留言簿條目;請記住,例如,如果內存不足,memcache數據可能會被驅逐。
如果您的留言板流量很高,而且您正在忍受寫入數據存儲區超時/爭用,請嘗試使用另一種方法,使用限速taskqueue來減慢寫入數據存儲區的次數。
你可以放鬆的寫入數據存儲的定義低在您的queue.yaml
中執行如下類似的匯率執行:
queue:
- name: relaxed-write
rate: 1/s
bucket_size: 1
每秒寫一次,您可能會收到一些零星的超時錯誤;在這種情況下,任務將再次執行直到成功。
你是第二個問到最近這樣的事情。我認爲有一些糟糕的優化課程正在進行。您應該避免進行單個放入,並嘗試儘可能批量放入,但不要將要再次看到的數據放入memcache中,而不要先將其寫入數據存儲區。 – Calvin 2011-03-07 20:31:18