推薦鏈接:
????總結(jié)——》【Java】
????總結(jié)——》【Mysql】
????總結(jié)——》【Redis】
????總結(jié)——》【Kafka】
????總結(jié)——》【Spring】
????總結(jié)——》【SpringBoot】
????總結(jié)——》【MyBatis、MyBatis-Plus】
????總結(jié)——》【Linux】
????總結(jié)——》【MongoDB】
????總結(jié)——》【Elasticsearch】
一、Redis常見的部署方式
- 單機模式
- 主從模式
- 哨兵(sentinel)模式
- 集群模式
二、生產(chǎn)環(huán)境一般采用的部署方式
主從+哨兵
Q:主從+哨兵結(jié)合模式,有什么優(yōu)點?
A:
普通的主從模式:當master崩潰時,需要手動切換讓slave成為master。
主從+哨兵結(jié)合模式:當master異常宕機時,哨兵可以實現(xiàn)故障自動切換,把slave提升為新的master,繼續(xù)提供服務(wù),以此保證可用性。
三、當主從發(fā)生切換時,分布式鎖依舊安全嗎?
1、場景
- 客戶端1在master上執(zhí)行SET命令,加鎖成功
- 此時,master異常宕機,SET命令還未同步到slave上(主從復(fù)制是異步的)
- 哨兵將slave提升為新的master,但這個鎖在新的master上丟失了,導(dǎo)致客戶端2來加鎖成功了,兩個客戶端共同操作共享資源
2、現(xiàn)象
發(fā)生鎖數(shù)據(jù)丟失問題,因為主從復(fù)制是異步的,主庫加了鎖卻沒來得及同步到從庫上,從庫就被哨兵提升為新主庫,所有這個鎖在新的主庫上,丟失了!文章來源:http://www.zghlxwxcb.cn/news/detail-691999.html
3、結(jié)論
當引入Redis副本后,分布式鎖還是可能受到影響。即使Redis通過sentinel保證高可用,如果這個master節(jié)點由于某些原因發(fā)生了主從切換,那么就會出現(xiàn)鎖丟失的情況。文章來源地址http://www.zghlxwxcb.cn/news/detail-691999.html
到了這里,關(guān)于Redis——》Redis的部署方式對分布式鎖的影響的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!