java 开发 把购物车放在 cookie 中 用户登陆后吧信息保存在缓存中,如果此时 在后台 对商品信息进行修改 影响到了缓存中的数据 此时 如何处理!
学习是最好的投资!
對於商品這種時效性比較嚴格的物件來說後台資料更新了,使用到了這些資料的地方也應該需要更新。解決這類問題通常使用觀察者模式,核心在於發布(publish)和訂閱(Subscribe)。具體實作有很多種方案,在應用程式內可以使用Guava的Eventbus,也可以使用redis這類nosql。個人推薦使用redis來完成,同時redis也能作為二級快取。
不管採用如何方式來更新快取中的商品資料,都d是一件很費時間並且會加大系統的複雜度的事情,而且資料還不一定能夠即時更新讀取;所以建議購物車裡面存放skuId和购买的amount ,刷購物車的時候從商品緩存中讀取商品數據;而商品更新以後更新商品緩存,這樣可以減少更新商品信息而帶來的系統複雜度,並且節約了很大一部分內存
skuId
amount
對於商品這種時效性比較嚴格的物件來說後台資料更新了,使用到了這些資料的地方也應該需要更新。解決這類問題通常使用觀察者模式,核心在於發布(publish)和訂閱(Subscribe)。具體實作有很多種方案,在應用程式內可以使用Guava的Eventbus,也可以使用redis這類nosql。個人推薦使用redis來完成,同時redis也能作為二級快取。
不管採用如何方式來更新快取中的商品資料,都d是一件很費時間並且會加大系統的複雜度的事情,而且資料還不一定能夠即時更新讀取;所以建議購物車裡面存放
skuId
和购买的amount
,刷購物車的時候從商品緩存中讀取商品數據;而商品更新以後更新商品緩存,這樣可以減少更新商品信息而帶來的系統複雜度,並且節約了很大一部分內存