php讀寫分離同步數據庫,數據庫 讀寫分離

php手把手教你做網站(二十九)thinkphp6部署多個數據庫

前邊介紹了負載均衡,mysql同步,接下來介紹tp6分布式部署多個數據庫,實現讀寫分離。

創新互聯服務項目包括港南網站建設、港南網站制作、港南網頁制作以及港南網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,港南網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到港南省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!

tp6的分布式部署讀和寫仍然是一個系統,這里我們分開操作,給用戶展示的就是從數據庫,后端添加文章就是主庫,然后同步到從庫。

1、配置數據庫鏈接參數

目標:實現隨機使用數據庫展示信息,只是讀操作。

測試:前臺可以讀取表中內容(存放的不一致),查看是否是隨機顯示的。

打開.env文件進行編輯

說明:

2、編輯database.php

找到deploy設置為1分布式部署,下邊不要改,都是讀,寫入的也就是后端的我們單獨建站連接主庫。

配置完成,tp6使用的是mt_rand取隨機數判斷使用哪個數據庫。

3、數據庫交互寫操作

比如瀏覽量沒必要每次都去更新數據庫,可以先使用redis緩存,存夠1000的整數倍,再去更新數據庫。

4、后臺獨立,也就是寫

可以前后端分離,單獨做一個網站(沒有前端)使用ip訪問或者獨立的域名連接后臺。

5、上傳附件(jquery ajax跨域上傳)

使用了nginx負載均衡,肯定是多個一樣的網站,如果圖片存放到一個站,別的就不能訪問了,可以單獨設置一個附件(壓縮包,圖片等)服務器,可以使用二級域名連接,這就要求我們上傳附件的時候,是上傳到附件服務器。

jqueryURL

API控制器apdpic方法

說明:

也可以先傳到后臺服務器然后使用(php)ftp上傳,或者是通過curl上傳到附件服務器,感覺那樣畢竟麻煩,直接設置跨域會比較簡單。

也測試了使用jsonp跨域,但是不能上傳附件。

6、thinkphp6實現讀寫分離(在一個站點)

我個人是不喜歡這樣的,負載均衡應該是均衡地讀,也就是前臺單獨一個站點,后端的寫是另一個獨立的站點,看個人喜好吧。

獨立后臺的優點:可以提升安全性,因為我們的后臺網址是不公開的,避免用戶猜測一些后臺的信息。

.env配置按照1所述編輯,默認第一個是主庫。

database.php

愿大家在新的一年心想事成,萬事如意!!!

php mysql 怎么實現讀寫分離

?php

class Db

{

private $res;

function __construct($sql)

{

$querystr = strtolower(trim(substr($sql,0,6)));

//如果是select,就連接slave服務器

if($querystr == 'select')

{

$res=$this-slave_select($sql);

$this-res=$res;

}

//如果不是select,就連接master服務器

else

{

$res=$this-master_change($sql);

$this-res=$res;

}

}

/**

* slave從庫返回sql查詢結果

* @param $sql

* @return array

*/

private function slave_select($sql){

//該處只是隨機獲取slave節點的ip,當然,還可以采用其他算法獲取slave_ip

$slave_server=$this-get_slave_ip();

$dsn="mysql:host=$slave_server;dbname=test";

$user='root';

$pass='123456';

$dbh=new PDO($dsn, $user, $pass);

return $dbh-query($sql)-fetchAll(PDO::FETCH_ASSOC);

}

/**master主庫返回sql執行結果

* @param $sql

* @return int

*/

private function master_change($sql){

$master_server='192.168.33.22';

$dsn="mysql:host=$master_server;dbname=test";

$user='root';

$pass='123456';

$dbh=new PDO($dsn, $user, $pass);

return $dbh-exec($sql);

}

/**

* 隨機獲取slave-ip

* @return mixed

*/

private function get_slave_ip(){

$slave_ips=['192.168.33.33','192.168.33.44'];

$count=count($slave_ips)-1;

$random_key=mt_rand(0,$count);

return $slave_ips[$random_key];

}

/**

* 獲取結果

* @return int

*/

public function get_res(){

return $this-res;

}

}

$sql1 = "select * from t1";

$sql2 = "insert into t1 (name) values ('haha')";

$sql3 = "delete from t1 where id=1";

$sql4 = "update t1 set name='Jerry' where id=2";

$db = new Db($sql1);

//$db = new Db($sql2);

//$db = new Db($sql3);

//$db = new Db($sql4);

var_dump($db-get_res());

mysql 如何實現讀寫分離,用mysql-proxy 或者直接用php連接兩個數據庫?

Mysql主從配置,實現讀寫分離

原理:主服務器(Master)負責網站NonQuery操作,從服務器負責Query操作,用戶可以根據網站功能模特性塊固定訪問Slave服務器,或者自己寫個池或隊列,自由為請求分配從服務器連接。主從服務器利用MySQL的二進制日志文件,實現數據同步。二進制日志由主服務器產生,從服務器響應獲取同步數據庫。

具體實現:

1、在主從服務器上都裝上MySQL數據庫,windows系統鄙人安裝的是mysql_5.5.25.msi版本,Ubuntu安裝的是mysql-5.6.22-linux-glibc2.5-i686.tar

windows安裝mysql就不談了,一般地球人都應該會。鄙人稍微說一下Ubuntu的MySQL安裝,我建議不要在線下載安裝,還是離線安裝的好。大家可以參考 這位不知道大哥還是姐妹,寫的挺好按照這個就能裝上。在安裝的時候可能會出現幾種現象,大家可以參考解決一下:

(1)如果您不是使用root用戶登錄,建議 su - root 切換到Root用戶安裝,那就不用老是 sudo 了。

(2)存放解壓的mysql 文件夾,文件夾名字最好改成mysql

(3)在./support-files/mysql.server start 啟動MySQL的時候,可能會出現一個警告,中文意思是啟動服務運行讀文件時,忽略了my.cnf文件,那是因為my.cnf的文件權限有問題,mysql會認為該文件有危險不會執行。但是mysql還會啟動成功,但如果下面配置從服務器參數修改my.cnf文件的時候,你會發現文件改過了,但是重啟服務時,修改過后的配置沒有執行,而且您 list一下mysql的文件夾下會發現很多.my.cnf.swp等中間文件。這都是因為MySQL啟動時沒有讀取my.cnf的原因。這時只要將my.cnf的文件權限改成my_new.cnf的權限一樣就Ok,命令:chmod 644 my.cnf就Ok

(4)Ubuntu中修改文檔內容沒有Vim,最好把Vim 裝上,apt-get install vim,不然估計會抓狂。

這時候我相信MySQL應該安裝上去了。

2、配置Master主服務器

(1)在Master MySQL上創建一個用戶‘repl’,并允許其他Slave服務器可以通過遠程訪問Master,通過該用戶讀取二進制日志,實現數據同步。

當前題目:php讀寫分離同步數據庫,數據庫 讀寫分離
分享路徑:http://m.kartarina.com/article10/hegsdo.html

成都網站建設公司_創新互聯,為您提供電子商務網站改版定制網站網站內鏈品牌網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化
主站蜘蛛池模板: 中文字幕精品三区无码亚洲| 久久无码专区国产精品| 人妻无码人妻有码中文字幕| 亚洲v国产v天堂a无码久久| 中文字幕乱码无码人妻系列蜜桃 | 亚洲中文字幕无码mv| 亚洲最大av资源站无码av网址| 尤物永久免费AV无码网站| 亚洲AV无码精品色午夜果冻不卡| av中文无码乱人伦在线观看| 无码AV波多野结衣久久| 人妻无码精品久久亚瑟影视| 久久AV无码精品人妻糸列| 中文字幕人妻无码系列第三区 | 午夜成人无码福利免费视频| 蜜桃AV无码免费看永久| 亚洲国产AV无码专区亚洲AV | 亚洲色偷拍另类无码专区| 亚洲av无码专区在线电影天堂| 亚洲AV日韩AV永久无码绿巨人| 天天看高清无码一区二区三区| 无码国产精品一区二区免费虚拟VR | 亚洲av无码专区青青草原| 亚洲av无码一区二区三区网站| 一级电影在线播放无码| 亚洲精品无码少妇30P| 97性无码区免费| 久久久久久无码Av成人影院| 无码aⅴ精品一区二区三区浪潮 | 亚洲一区无码中文字幕| 无码中文字幕色专区| 成人h动漫精品一区二区无码| 亚洲人成无码网站在线观看| 亚洲午夜无码久久| 亚洲av无码一区二区三区人妖| 亚洲中文字幕无码av永久| 亚洲精品无码av片| 性色av无码不卡中文字幕| 日韩乱码人妻无码中文字幕视频| 日韩乱码人妻无码中文视频| 精品人妻系列无码人妻免费视频|