MySQL / Redis / MongoDB 讀寫分離設定
阿新 • • 發佈:2019-01-09
資料庫讀寫分離設定
MySQL
# master配置 server-id=200 # 一般取IP的最後一組數字 innodb_flush_log_at_trx_commit=2 sync_binlog=1 log-bin=mysql-bin-200 binlog-do-db= # 同步的資料庫的名稱,全部可以使用 * 重啟MySQL # 客戶端執行命令,授權給 slave grant replication slave on *.* to 'zhang'@"IP" identified by '123456'; show master status; # slave 更改配置 server-id=201 innodb_flush_log_at_trx_commit=2 sync_binlog=1 log-bin=mysql-bin-201 # slave mysql客戶端執行命令 change master to master_host='10.7.152.77', # 連線 master的 IP master_user='zhang', # master授權的使用者 master_password='123456', # 密碼 master_log_file='mysql-bin-200.000002', # master 的日誌位置 master_log_pos=448; # master 的 Position start salve; show slave status\G; # 檢視狀態
Redis
-
通過修改conf檔案來配置主從, 一般都是在一臺伺服器上面作為專門的 redis 伺服器
-
啟動
redis-server redis.conf
# master master.conf port 6000 requirepass 123456 # 480行 # redis-server master.conf # 測試 redis-benchmark -h IP -p Port -a password # 檢視連線 # slave slave.conf 應該配置多個 slave 對master進行讀取 port 6001 slaveof 127.0.0.1 6000 masterauth 123456 # 對主機的驗證,也是master的密碼 requirepass 123456 # master設定的密碼 # redis-server slave.conf # 配置 sentinel(哨兵,守護程序),當master宕機時,選取 slave 作為master # 更該 sentinel.conf檔案(最好將原檔案複製一份進行更改) bind IP # master-IP 即 內網 IP port 埠 sentinel monitor mymaster IP port num # master的公網IP,port,哨兵數,指當有num個哨兵同時監測到master宕機時,開始選舉新的master sentinel anth-pass mymaster <password> # master的 密碼 sentinel down-after-millisenconds mymaster 3000 # 開始投票的反應時間 sentinel failover-timeout mymaster 180000 # 設定返回的時間,在規定時間返回可以繼續作為master # 啟動哨兵,哨兵也會宕機,應該多啟動幾個進行守護 redis-server sentinel.conf --sentinel
MongoBD
-
可以在 slave 上啟動多個 salve 建立不同的目錄進行儲存資料,實現master執行20%的寫和salve實現80%的查詢操作
# master 啟動
mongod --bind_ip_all --dbpath /data/master -master
# slave 啟動
mongod --dbpath /data/slave -slave -source masterIP:port # master的IP和埠