【オリジナル】複数memcachedとmysqlマスタースレーブ環境でのPHP開発:詳細コード解説_PHPチュートリアル
今日はこの会社での最後の日です
そこで、大規模なウェブサイトではメモリをデータベースとして使用するのが常です。 memcached) そして、優れた読み取りと書き込みの分離バックアップメカニズム (mysql のマスター/スレーブ)
そのような環境で PHP を開発するにはどうすればよいか、私は話す方法がわからないので、コードを投稿するだけです。
Linux の VIM で書いたところですが、デモの 1 つはデバッグに合格しました。PHP5 で書いていると、遅れていると言われるのではないかと心配しています。 PHP4.多 複数の
Memcached
サーバーのマルチプロセスシミュレーション CN ENはメモリサーバー名です 'cn' = & gt; Array ('192.168.254.144', 11211), 'en' = & gt; ('192.168.254.144 ',11212) );$mysql = array( // mysql マスタースレーブ 私の環境は次のとおりです: xp マスター linux スレーブ mysql 5 php5 'master'=>array('192.168.254.213', 'root', '1','mydz'), 'slave_1'=>array('192.168.254.144','root','1','mydz') //複数のスレーブサーバーを柔軟に追加できます );? > サーバー設定ファイル: マスターとスレーブを切り替えると、スレーブは複数のスレーブ サーバーにすばやく切り替えることができます。 ?phpclass Memcached{
private $mem;
public $pflag=''; //
memcached
pconnect タグ
private function memConnect($serkey){
require 'config.php';
$server = $
memcached
;
$this->mem = 新しい Memcache;
$link = !$this->pflag ? 'connect' : 'pconnect' ;
$this->mem->$link ($server[$serkey][0],$server[$serkey][1]) または $this->errordie('
memcached接続エラー');
}
public function set($ ser_key,$values,$flag='',$expire=''){ $this->memConnect($this->tag($ser_key)); if($this->mem-> set($ser_key,$values,$flag,$expire)) return true; else return false;}
public function get($ser_key){
$this->memConnect($this->tag( $ser_key)); if($var=$ this->mem->get($ser_key)) return $var; else return false } プライベート関数タグ($ser_key){
$tag= explode('_',$ser_key);
return $tag[0];
}
プライベート関数 errordie($errmsg){
die($errmsg);
}
}
?>
[/php]
は単に
memcached
の操作をカプセル化したものです。詳しく説明する時間はあまりありません。
memcached
のマルチサーバー上での実装アイデアは次のとおりです。
これは、メモリ サーバーの名前によって表されます。 $arr の情報をメモリサーバーに保存します。en、次のように書きます $mem->set ('en_'.$arr); わかりました
[php] class Mysql{ private $mysqlmaster;private $myssqlslave;
private static $auid=0;
public function __construct (){ require 'config.php'; $msg = $mysql; $this->mysqlmaster = new mysqli ($msg['master'][0],$msg['master'][1 ],$msg['master'][2],$msg['master'][3]); //マスター mysql
$this->mysqlslave = $this->autotranscat($msg); // スレーブ mysql
if(mysqli_connect_errno()){
printf("接続失敗: %sn",mysqli_connect_error());
exit ();
}
if(!$this->mysqlmaster->set_charset(" latin1") && !$this->mysqlslave->set_charset("latin1")){
exit("set charset エラー");
}
}
プライベート関数 autotranscat($mysql){
session_start();
$_SESSION['SID']!=0 || $_SESSION['SID']=0 ;
if($_SESSION['SID'] >=count($mysql)-1) $_SESSION['SID'] = 1;
else $_SESSION['SID'] ++;
$key = 'slave_'.$_SESSION['SID'];
echo($_SESSION['SID']);
return new mysqli($mysql[$key][0],$mysql[$ key][1],$mysql[$key][2],$mysql[$key][3]);
}
public function mquery($sql){ //insert update
if(!$this- >mysqlmaster->query($sql)){
return false;
}
}
public function squery($sql){
if($result=$this->mysqlslave->query($sql) )){
$result を返します。
}else{
return false;
};
}
public function fetArray($sql){
if($result=$this->squery($sql)){
while($row=$result-> ;fetch_array(MYSQLI_ASSOC)){
$resultraa[] = $row;
};
return $resultraa;
}
}
}
?>
[/php]
これは mysqli のパッケージです。 也就是 读 从 写 主 的操作の封入.
[php]
require 'init.php';
$mem = new Memcached;
/* $mem->set('en_xx', 'bucuo');
echo($mem->get('en_xx'));
$mem->set('cn_jjyy','wokao');
echo($mem->get('cn_jjyy '));
*/
$sq = 新しい Mysql;
$sql = "mybb(pid) 値 (200) に挿入";
$mdsql = md5($sql);
if(!$result=$mem ->get('cn_'.$mdsql)){
$sq->mquery("mybb(pid) 値に挿入(200)"); //主mysqlに侵入
$result = $sq->fetArray("select * from mybb"); //查询是从mysql
foreach($result as $var){
echo $var['pid'];
}
$mem->set('cn_'.$mdsql,$result); // 名前に cn を追加memcached 服务器
}else{
foreach($result as $var){
echo $var['pid'];
}
}
?>
[/php ]
これは使用程序です。 看下就大概明白了。 大站就差不多是这样实现的了。 この雑誌は似乎 ただ有我発信了。 献丑了

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

Theliaを使用してeコマースWebサイトを開発するとき、私はトリッキーな問題に遭遇しました:MySQLモードが適切に設定されていないため、いくつかの機能が適切に機能しません。いくつかの調査の後、TheliamysQlModescheckerというモジュールを見つけました。これは、Theliaが必要とするMySQLパターンを自動的に修正できるため、問題を完全に解決できます。

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

フロントエンド開発においてJSONで機能と正規表現を安全に処理することができますが、JavaScriptが必要です...
