目次
PHP 環境での Memcache のインストールと使用、phpmemcache
ホームページ バックエンド開発 PHPチュートリアル PHP 環境での Memcache のインストールと使用、phpmemcache_PHP チュートリアル

PHP 環境での Memcache のインストールと使用、phpmemcache_PHP チュートリアル

Jul 12, 2016 am 09:05 AM
memcache php 使用

PHP 環境での Memcache のインストールと使用、phpmemcache

Memcache は danga.com のプロジェクトであり、現在、世界中の多くの人々がこのキャッシュ プロジェクトを使用して独自の大容量 Web サイトを構築しています。データベースに対するプレッシャーを共有します。任意の数の接続を処理でき、ノンブロッキング ネットワーク IO を使用します。 Memcached の動作メカニズムは、メモリ内のスペースを開いて HashTable を作成することであるため、Memcached はこれらの HashTable を独自に管理します。 Memcache 公式 Web サイト: http://www.danga.com/memcached、詳細情報はここでご覧いただけます。

Memcache と memcached という 2 つの名前があるのはなぜですか?実際、Memcache はこのプロジェクトの名前であり、memcached はサーバー側のメイン プログラム ファイルの名前です。 1 つはプロジェクト名で、もう 1 つはメイン プログラムのファイル名です。インターネット上では理解できず、これらを同じ意味で使用している人がたくさんいました。

Memcacheのインストール

これは、memcache サーバーのインストールと memcached クライアントのインストールの 2 つのプロセスに分かれています。
いわゆるサーバー側インストールでは、データを保存するためにサーバー (通常は Linux システム) に Memcache をインストールします。
いわゆるクライアント インストールとは、サーバー側で Memcache が提供する機能を使用するための PHP (または他のプログラム、Memcache には他の優れた API インターフェイスも提供されています) を指します。これには、PHP で拡張機能を追加する必要があります。

PHP 用 Memcache

リーリー

正常であれば、ブラウザは次のように出力します:

キー値の取得: これが最初の値です
キー値の取得: これは置換値です
キー値の取得: Array ( [] => aaa [] => bbb [] => ccc [] => ddd )
キー値を取得:
キー値を取得:

プログラムコード解析

Memcache オブジェクトを初期化します: $mem = new Memcache;
Memcache サーバーに接続します。最初のパラメーターはサーバーの IP アドレスで、2 番目のパラメーターは Memcache のオープン ポートです: $mem->connect("192.168.0.200", 12000) ;

データを Memcache サーバーに保存します。最初のパラメータはデータのキーであり、2 番目のパラメータは保存する必要があるデータの内容です。通常は 0 または MEMCACHE_COMPRESSED に設定します。これは、データがこの期間内に有効であることを意味します。単位は秒です。設定されている場合、0 の場合は永久に有効になります。ここでは 1 分間有効となる 60 を設定しています。 $mem->set('key1', 'This is first value', 0, 60);

Memcache サーバーからデータを取得します。これには、データを取得するためのキーとなるパラメーターが 1 つだけあります。このデータを取得した後、出力を出力します。 リーリー

ここで、replace メソッドを使用して、上記の key1 の値を置き換えます。replace メソッドのパラメータは設定されたものと同じですが、最初のパラメータ key1 は、データの内容を置き換えるキーである必要があります。

リーリー

同様に、Memcache も配列を保存できます。以下は Memcache に保存され、取得されて出力される配列です。 リーリー

ここでデータを削除し、delte インターフェイスを使用します。パラメータはキーです。その後、Memcache サーバー内のキーのデータを削除できます。最終的な出力には結果はありません。 リーリー

最後に、Memcache サーバーに保存されているすべてのデータをクリアすると、データがなくなっていることがわかり、最終的に出力された key2 データが空になり、最後に接続が閉じられます。 リーリー

Memcacheの使用法

Memcache を使用する Web サイトは、一般的に比較的大きなトラフィックを伴います。データベースへの負荷を軽減するために、Memcache は、フロントエンドで高速にアクセスできるように、情報の一部をメモリに保存するキャッシュ領域として使用されます。したがって、一般的な焦点は、データベースの負荷をどのように共有して分散するかということです。結局のところ、単一の Memcache のメモリ容量には限界があります。ここでは私の個人的な意見を述べているだけであり、実践したわけではないので、参考としてのみ使用してください。

分散アプリケーション

Memcache はもともと分散配布をサポートしていますが、より良いサポートを提供するためにクライアントがわずかに変更されました。たとえば、ユーザーベースの Web サイトの場合、各ユーザーはユーザー ID を持っているため、固定 ID に従って抽出してアクセスできます。たとえば、1 で始まるユーザーは に保存されます。最初の 1 つの Memcache サーバーでは、2 で始まるユーザーのデータが 2 番目の Memcache サーバーに保存され、まずユーザー ID に従ってアクセス データが変換され、アクセスされます。 ただし、これにはユーザー ID を判断する必要があるという欠点があります。ビジネスに一貫性がない場合、または他の種類のアプリケーションがあまり適していない可能性がある場合は、実際のビジネスに基づいて検討するか、より適切な方法を考えることができます。

データベースの負荷を軽減します

これはさらに重要で、基本的にすべてのデータがデータベースに頻繁にアクセスされると、データベースのパフォーマンスが大幅に低下し、同時により多くのユーザーにサービスを提供できなくなります。 .table を使用して、Memcache にデータベースへの負荷を分散させます。変更が比較的小さく、フロントエンドへの大規模な変更を必要としない方法で、現在のアーキテクチャを変更する方法が必要です。

私が考えた簡単な方法:

バックエンドのデータベース操作モジュールは、すべての選択操作 (更新/削除/挿入に関係なく) を抽出し、対応する SQL で対応するハッシュ アルゴリズムを実行してハッシュ データ キー (MD5 や SHA など) を計算し、これを配置します。キーは Memcache 内のデータを検索します。データが存在しない場合は、データがデータベースから抽出され、そのデータが Memcache に設定されます。 key は SQL のハッシュ値であり、それに応じて有効期限を 1 時間などに設定すると、1 時間以内にデータがキャッシュから抽出され、データベースへの負荷が効果的に軽減されます。欠点は、データがリアルタイムではないことです。データが変更されると、フロントエンドでリアルタイムに表示できなくなり、結局のところ、それぞれのデータの量が大量に占有される可能性があります。これは考慮する必要がある要素です。

Memcache セキュリティ

上記の Memcache サーバーは、検証プロセスを経ずにクライアント接続を通じて直接動作します。サーバーが直接インターネットに公開されると、少なくともデータが漏洩し、関係のない他の人に閲覧される可能性があり、最悪の場合、より危険です。 Mecache が root 権限で実行されているため、サーバーに侵入されました。未知のバグやバッファ オーバーフローが存在する可能性があります。これらは私たちには未知であるため、危険は予見できます。セキュリティの観点から、ハッカーの侵入やデータ漏洩を少しでも防ぐことができる提案を 2 つさせていただきます。

イントラネット アクセス

2 つのサーバー間 (通常は Web サーバーと Memcache サーバー間) でイントラネット アクセスを使用するのが最善です。一般的なサーバーには 2 つのネットワーク カードがあり、1 つはインターネットを指し、もう 1 つはイントラネットを指します。次に、Web サーバーがイントラネット ネットワーク カードを介して Memcache サーバーにアクセスできるようにし、Memcache サーバーの IP アドレスと IP アドレスを監視します。イントラネットのポートとイントラネット アクセスにより、他の不正アクセスを効果的に防止できます。

# memcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid

Memcache サーバーは、イントラネット上の 192.168.0.200 IP の 11211 ポートをリッスンするように設定されており、1024 MB のメモリを占有して、最大 1024 の同時接続を許可します。

ファイアウォールを設定する

ファイアウォールはシンプルで効果的な方法です。両方のサーバーがインターネットに接続されており、外部 IP 経由で Memcache にアクセスする必要がある場合は、不正なアクセスをフィルタリングするためにファイアウォールまたはプロキシ プログラムの使用を検討できます。一般に、Linux では、FreeBSD で iptables または ipfw を使用して、一部の不正アクセスを防止するルールを指定できます。たとえば、Web サーバーに Memcache サーバーへのアクセスのみを許可し、他のアクセスをブロックするように設定できます。

# iptables -F
# iptables -P 入力ドロップ
# iptables -A INPUT -p tcp -s ... –dport -j ACCEPT
# iptables -A INPUT -p udp -s ... –dport -j ACCEPT

上記の iptables ルールは、192.168.0.2 Web サーバーのみが Memcache サーバーへのアクセスを許可するため、一部の不正アクセスを効果的に防止できます。これに応じて、セキュリティを強化するために他のルールを追加することもできます。する。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1068828.html技術記事 PHP 環境での Memcache のインストールと使用、phpmemcache Memcache は danga.com のプロジェクトであり、現在、世界中の多くの人々がこのキャッシュ プロジェクトを使用して構築しています。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles