面試記錄1 2021年11月30日 10點
阿新 • • 發佈:2021-11-30
獲取執行緒池執行的返回結果
執行緒池submit() Callable實現的執行緒,返回Future,通過get從中獲取結果,可以設定獲取超時時間,避免get一直阻塞
redis叢集 6臺機器
三主三從
叢集和分散式的區別
叢集主要是分擔壓力(n臺機器,負載均衡後壓力減少為1/n),保證高可用(一臺機器掛了,其他機器仍提供服務)
分散式:各節點承擔不同的任務,將任務分解,分別解決,最後協調合作,分散式的各個節點都可以採用叢集部署
Redis快取 資料庫 一致性
雙寫一致性1
1)執行緒A發起一個寫操作,第一步write DB
2)執行緒A第二步del cache
3)執行緒B發起一個讀操作,cache miss
4)執行緒B從DB獲取最新資料
5)執行緒B同時set cache
雙寫一致性2
1)讀取快取中是否有相關資料
2)如果快取中有相關資料value,則返回
3)如果快取中沒有相關資料,則從資料庫讀取相關資料放入快取中key->value,再返回
4)如果有更新資料,則先更新資料,再刪除快取
5)為了保證第四步刪除快取成功,使用binlog非同步刪除
6)如果是主從資料庫,binglog取自於從庫
7)如果是一主多從,每個從庫都要採集binlog,然後消費端收到最後一臺binlog資料才刪除快取