我看到你可以原子地增加IronCache中的值,但是如果你有很多IronWorkers試圖將put
值寫入單個緩存鍵?爲了將更新同步到緩存或者是否存在其他慣用方式,將這些值更新放在Message Queue上會更好嗎?IronCache的原子更新
1
A
回答
1
目前沒有慣用的方式來更新非整數緩存項目,而不會激發競爭條件神。解決這個限制有很多不同的方法,但是你的MQ解決方案(假設只有一個工作人員正在寫更改)可能是你最好的選擇。
我們意識到這個缺點,並且我們正在努力解決問題,但目前我們沒有任何聲明。
1
做到這一點的一種方法是將您的值分成多個緩存條目。假設你有你的JSON層次:
{
"x": "y",
"sub1": {
"a": "b"
},
"sub2": {
"c": "d"
}
}
將其更改爲:
{
"x": "y",
"sub1": "cache_key_a",
"sub2": "cache_key_b"
}
然後在cache_key_a:
{
"a": "b"
}
,做同樣的cache_key_b等。這能解決你的問題嗎?
+0
我把它作爲一個單一鍵的原因是因爲我的前端在每一頁上都請求緩存。它是由後臺工作人員定期更新的狀態緩存,並且FE需要始終顯示最新狀態。如果我將它分成單獨的k/v對,它會在每個頁面加載時變成大約15個緩存請求。 – devth
相關問題
- 1. 原子更新
- 2. Mongoose中的原子更新
- 3. React.Component的setState原子更新
- 4. MongoDB的更新原子
- 5. Solr的原子更新
- 6. GPU內存更新原子
- 7. NHibernate原子記錄更新
- 8. 原子更新語句
- 9. 的Node.js - 與Redis的原子更新
- 10. MS Velocity中的原子更新
- 11. 多個資源的RESTful原子更新?
- 12. 使用MongoDB的多個原子更新?
- 13. XML格式的solr原子更新
- 14. 原子更新與SQL中的聯接
- 15. Mongoose.js:嵌套屬性的原子更新?
- 16. InnoDB和MyISAM中的MySQL原子更新
- 17. CouchDB中視圖更新的原子性
- 18. 更新多列的MySQL更新是非原子的?
- 19. 序言:轉換原子新的原子
- 20. Solr原子更新刪除以前的更新
- 21. 原理mongodb中的多個文檔的原子更新
- 22. 如何根據條件更新原子?
- 23. Spring JdbcTemplate是更新原子嗎?
- 24. 使用Git原子網站更新
- 25. 原子獨佔SQL記錄更新
- 26. 以原子方式更新多個行
- 27. 通過URL進行solr原子更新
- 28. 更新嵌套選擇原子操作?
- 29. 原子更新一使用水線JS
- 30. 允許原子更新到數據庫
嗨@devth,你試圖把什麼它放入緩存?你需要有正確的工作人員的順序嗎? –
Hi @ Travis,我將狀態彙總存儲在一個緩存鍵中。不同的工作人員可以更新狀態的不同部分(值是層次結構json)。只要它們不能同時讀取/更新,就沒有問題,但爲了避免競爭條件而無需手動同步,我需要進行比較和交換。 – devth