4
我正在使用memcache(而不是memcached),並且我可能在同時觸發緩存時發出10000個請求。這可能會導致競爭條件,所以我使用此代碼http://terrychay.com/article/keeping-memcache-consistent.shtml獲取鎖定並設置密鑰。緩存和競爭條件
現在從日誌記錄中看到,雖然有一個請求A正在等待緩存,但其他請求B可能會完成讀取數據並將其放入緩存,因此請求A無法等待並覆蓋數據。
所以我認爲一個解決方案是:當一個請求正在等待鎖定時,它將檢查數據是否存在於密鑰中。如果它有返回來自密鑰的數據而不是更新它。任何人都可以考慮任何建議嗎?在等待鎖定時檢查密鑰是否會炸燬memcache服務器?
所以你正在抓取,做一些東西,然後再次更新相同的密鑰?這是writeelock還是readlock? – joschua011 2012-07-31 21:47:38