この記事の内容は PHP インタビューの経験に関するものです。必要な友達は参考にしてください。
memcache と redis の類似点と相違点
マルチスレッド、高スループットを使用でき、大規模な訪問に適しています
memcache は単純なキー/値構造のみをサポートします
memcache はデータを保持できず、データの再起動後にのみ使用できます。 loss
memcache はマルチスレッド操作をサポートしているため、データの整合性の問題を考慮する必要があります。Cas (チェック アンド セット) オプティミスティック ロックが使用されます
redis は単一形式であるため、秩序ある操作を保証できます。
- redis は、キー/値、リスト、セット、zset、dict などのさまざまなデータ構造をサポートしています。
- redis データは永続的に保存でき、データはディスクに保存でき、読み出すことができます。再起動時
- redisはデータバックアップ、つまりマスター/スレーブモードでのデータバックアップをサポートします
Webプロジェクト向けの高同時実行ソリューション
- 静的HTML、一般的に使用されるがめったに更新されないデータを静的化します
- 画像アプリケーションサーバーへの影響を避けるためにサーバーを分離すると同時に、
- データベースクラスター、ライブラリテーブルハッシュ
データベースに対して個別の構成の最適化、キャッシュ設定などを実行できます。クラスターは読み取りと書き込みの分離を実現し、データベースを向上させることができます。応答速度は通常、1 つのマスターと複数のスレーブ、または x マスターと y スレーブです。たとえば、書き込みを減らして読み取りを増やす場合、1 つのサーバーが書き込み操作専用になり、他のサーバーが読み取り操作に使用されます。これにより、読み取り/書き込みロックの影響を回避できます。ただし、書き込み操作の完了後、データを同期する必要があります。
-
データベースクラスターのもう1つの利点は、1つのデータベースサーバーがダウンしても、他のサーバーに完全なデータがまだ残っていることです
-
分散データベースでは、システム内に複数のノードがあり、各ノードが異なるタスク機能を実行します。ノードがハングアップすると、対応する機能を完了できなくなります。
-
データベースクラスターと分散データベースの違い。 1 つのノードでタスクが完了するまでに 1 時間かかり、そのようなタスクが 10 個あり、ノードが 10 個あるとします。分散データベースは、サブタスクの依存関係に関係なく、タスクを 10 個のタスクに分割できます。すべてのタスクは 1 時間後に完了します。データベース クラスター内の各ノードは完全なタスクを完了でき、各ノードに平均 10 個のタスクを実行できるため、すべてのタスクが 1 時間後に完了します。
-
SQL最適化
-
テーブル内のデータが多すぎる場合は、テーブルを分割し、ハッシュマッピングを使用することを検討できます
-
インデックス最適化
キャッシュ
-
アクセスを改善する速度
-
負荷分散、高同時実行性と大規模アクセスの問題を解決
-
CDN、ユーザーが最も近い CDN サーバーにアクセスして最速の応答を得ることが可能
-
データ圧縮
-
PHP
Magic Method
__set/__get はクラスに存在しない属性を処理します
-
__call/_callStatic は、クラスに存在しないメソッド/静的メソッドを呼び出すときにトリガーされます。 __callStatic自体も静的メソッドとして宣言する必要があります
-
__toString オブジェクトを文字列に変換して出力
-
__invoke オブジェクトを関数として実行
-
requireとincludeの違い
エラー処理の違い それ以外はすべて同じです。 require は致命的なエラーを生成し、スクリプトの実行が停止します。 include すると警告が生成されますが、スクリプトは引き続き実行されます
以上がPHPインタビューの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。