您好,登錄后才能下訂單哦!
主主復制下一定要注意避免的問題---------同步沖突
例:
create table stu (
id int primary key auto_increment.
)......
請求的A節點, ?stu?的id為1
請求的B?節點, ?stu的id為1 ,
同步--->沖突
?
如何解決?
讓1臺服務器 ?1,3,5,7來增長
另1臺服務器 ?2,4,6,8來增長
一臺服務器:
set global auto_increment_increment = 2;
set global auto_increment_offset = 1;
set session auto_increment_increment = 2;
set session auto_increment_offset = 1;
?
另一臺服務器:
set global auto_increment_increment = 2;
set global auto_increment_offset = 2;
set session auto_increment_increment=2;
set session auto_increment_offset = 2;
注:auto-increment-increment?和 auto-increment-offset 要寫到配置文件 中,防止下次重啟后失效.
操作后得到如下類似效果
?
如果后期需要加服務器,這個辦法就有限制了.
我們可以在業務邏輯上來解決,
比如在oracle?有sequnce序列.
序列每次訪問,生成遞增/遞減的數據.
?
以redis為例,?我們可以專門構建一個?global:userid
每次PHP插入Mysql前,先?incr->global:userid,?得到一個不重復的userid.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。