167、快取-springcache-簡介-172、快取-springcache-原理與不足
主要**如下:
/**演示的結果圖:* 級聯更新所有關聯的資料
* @param
category
*/@transactional
@override
//@caching( evict =,key = "'getlevel1categorys'"),
//@cacheevict(value=,key = "'getcatalogjson''")
//})
@cacheevict(value ="category",allentries = true
)
public
void
updatecascade(categoryentity category)
/*** 查詢所有一級分類**
@return
*///
@cacheable(value=,key = "'level1categorys'")
//代表當前結果需要快取,如果有就不需要快取,沒有則快取
@cacheable(value=,key = "#root.method.name")
@override
public listgetlevel1categorys()
public boolean lock(string key, string value,string luapath) throws
ioexception
@override
@cacheable(value=,key = "#root.method.name")
public map>getcatalogjson() ).collect(collectors.tolist());
//封裝catalog3vo到catalog2vo
catalog2vo.setcatalog3list(catalog3list);
}return
catalog2vo;
}).collect(collectors.tolist());
}//返回v=catalog2vo
return
catelog2vos;
}));
return
map;
}
修改資料,快取消失:
在重新整理首頁,快取修改後的資料
總結如下:
/*** spirng-cache的不足
* 1)讀模式:
* 快取穿透:查詢乙個null資料。解決:快取空資料:cache-null-values=true
* 快取擊穿:大量併發進來同時查詢乙個正好過期的資料。解決:加鎖,預設無鎖,sync=true
* 快取雪崩:大量的key同時過期。解決:加隨機時間。加上過期時間 spring.cache.redis.time-to-live=3600000
* 2)寫模式:(快取與資料庫一致)
* 1:寫入加鎖
* 2:引入canal,感受到mysql的變化
* 3:讀多寫多,直接去資料庫查詢就行
* 總結:
* 常規資料(讀多寫少,即時性,一致性要求不高的資料,完全可以使用spring-cache)
* 特殊資料:特殊設計 */
//@componentscan("com.dalianpai")
@enablediscoveryclient
@enablefeignclients("com.dalianpai.gulimall.product.feign")
public
class
public
static
void
main(string args)
}
穀粒商城 1
virtualbox vagrant 安裝好vagrant 後 初始化vagrant init centos 7匯入centos7 vagrant up連線centos vagrant ssh修改vagranfile檔案 config.vm.network private network ip 19...
穀粒商城 Gateway
1.建立專案gulimall gateway引入pom org.springframework.cloudgroupid spring cloud starter gatewayartifactid 2.2.3.releaseversion dependency com.alibaba.cloudg...
穀粒商城 OSS儲存
恢復內容開始 首先要理解檔案儲存。普通上傳 單機 收到請求之後會將上傳的檔案儲存到某個資料夾中。普通上傳 分布式 若有若干伺服器,將上傳的檔案儲存到某個伺服器中,如果下次負載均衡到其他伺服器,則無法找到上次儲存的檔案。所以需要將上傳的檔案統一儲存到乙個檔案系統中,可以用自建伺服器,也可以用雲儲存 阿...