ホームページ >バックエンド開発 >PHPチュートリアル >PHPでのmemcacheの詳しい説明
memcahe は分散ストレージ システムであり、主にサーバー間の接続が存在せず、ハッシュ テーブルが主にキーと値のペアで保存されるという点に反映されます。
| 値 | ||||||||
"abc" | |||||||||
myarr | Array(“aa”, “cc”); | ||||||||
オブジェクト | オブジェクトの値 |
動作原理
Memcache ソフトウェア、memcached
memcached は 1 つ以上のサービスでデーモンとして実行され、いつでもクライアントの操作と接続を可能にします。
Linux 環境でのインストール
Linux 環境
libevent インストール時
./configure –with-libevent=/usr
. 🎜>
Make && make install
Memcahced を開始します –d –m 128 –l 192.168.1.111 –p 11211 –u root
停止: kill `cat /tmp/memcached.pid`;
Killall memcached
Windows
Memcahced.exe -d install [アンインストール]
Memcached.exe – d -m 50 –l 127.0.0.1 -p 11211 start
>
memcached の基本設定:
-p リスニング ポート
-l 接続先 IP アドレスデフォルトはローカルマシンです。
-d restart memcached サービスを再起動します
-d stop|shutdown 実行中の memcached サービスを閉じます
-d install memcached サービスをインストールします
-d uninstall memcached サービスをアンインストールします。
-u Run as (root として実行する場合のみ有効)
-m 最大メモリ使用量 (MB 単位)。デフォルトは 64MB、最大は 2G のようです
-M メモリが使い果たされた場合、アイテムは削除されずにエラーが返されます
-c 同時接続の最大数、デフォルトは 1024
- f ブロック サイズの増加係数、デフォルトは 1.25
-n 最小割り当てスペース、キー+値+フラグのデフォルトは 48
-h ヘルプの表示
7. memcache を走査する方法
a PHP に Memcache 拡張機能をインストールする
オブジェクト指向メソッド
b PHP の場所 memcache を使用します
1. memcache を使用して、データベースから読み取ったデータを処理 (選択) します
2.
を使用しますセッション制御セッション c 例
9 、Memcache セキュリティ (他人のアクセスを許可しない)
1. イントラネット
2. ファイアウォールのセットアップ
Iptables –A INPUT –p tcp –s 192.168.1.111 –dport 11211 –j ACCEPT
iptables -A INPUT -p udp -s 192.168.1.111 -dpost 11211 -j ACCEPT
インストールを開始します。 🎜>
コマンド
例 |
| get
| 値を読み取る||
get mykey |
| set
| 無条件にキーを設定します||
set mykey 0 60 5 |
| add
| 新しいキーを追加します||
add newkey 0 60 5 |
| 置き換え既存のキーを上書きします | キーを置き換えます 0 60 5 | |
追加 | 既存のキーにデータを追加 | キーを追加 0 60 15 | ||
prepend | 既存のキーの先頭にデータを追加 | キーの先頭に追加 0 60 15 | ||
incr | 数値キーの値を指定された数値だけ増分します | incr mykey 2 | ||
decr | 数値キーの値を指定された数値だけ減分します | decr mykey 5 | ||
delete | 既存のキーを削除します | delete mykey | ||
flush_all | 特定のアイテムをすぐに無効化します | flush_all | ||
n 秒以内にすべてのアイテムを無効化します | flush_all 900 | |||
統計 | 一般的な統計を印刷します | 統計 | ||
メモリ統計を印刷します | stats slabs | |||
メモリ統計を印刷します | stats malloc | |||
上位レベルの割り当て統計を出力 | 統計アイテム | |||
統計詳細 | ||||
統計サイズ | ||||
統計をリセットします | 統計をリセットします | |||
バージョン | サーバーのバージョンを出力します。 | バージョン | ||
冗長性 | ログレベルを上げます | 冗長性 | ||
終了 | Telnet セッションの終了 | 辞めます |
pid |
Memcache サーバー プロセス ID |
稼働時間 | サーバーが実行されている秒数 |
time | サーバーの現在の UNIX タイムスタンプ |
バージョン | memcache version |
pointer_size | 現在のオペレーティング システムのポインター サイズ (32-ビット システムは通常 32 ビットです) |
rusage_user | プロセスの累積ユーザー時間 |
rusage_system | プロセスの累積システム時間 |
curr_items | サーバーに現在保存されているアイテムの数 |
total_items | サーバーの起動以降に保存されたアイテムの合計数 |
バイト | アイテムを保存する現在のサーバー |
curr_connections | 現在開いている接続の数 |
total_connections | サーバーの起動以降に開かれた接続の数 |
connection_structs | サーバー割り当て コネクション構築数 |
cmd_get | get コマンド (get) リクエストの総数 |
cmd_set | set コマンド (save) リクエストの総数リクエスト数 |
get_hits | 合計ヒット数 |
get_misses | 合計ミス回数 |
エビクション | 空きメモリを取得するために削除されたアイテムの数 (memcache に割り当てられたスペースがいっぱいになった後、新しいアイテムに割り当てられたスペースを得るために古いアイテムを削除する必要があります) |
bytes_read | 合計読み取りバイト数 (要求されたバイト数) |
bytes_write | 送信された合計バイト数 (結果のバイト数) |
limit_maxbytes | memcache に割り当てられたメモリ サイズ (バイト) |
スレッド | 現在のスレッド数 |
pid memcache サーバーのプロセス ID
uptime サーバーが実行されている秒数
time サーバーの現在の UNIX タイムスタンプ
version Memcache のバージョン
pointer_size 現在の操作 システムのポインター サイズ (通常、32 ビット システムの場合は 32 ビット)
rusage_user プロセスの累積ユーザー時間
rusage_system プロセスの累積システム時間
curr_items現在サーバーに保存されているアイテム
total_items サーバーの起動以降に保存されたアイテム アイテムの合計数
bytes 現在のサーバーがアイテムを保存するために占有しているバイト数
curr_connections 現在開いている接続の数
total_connectionsサーバーの起動後に開かれた接続の数
connection_structs サーバーによって割り当てられた接続構造の数
cmd_get 取得コマンド (get) のリクエストの総数
cmd_set set コマンド (保存) のリクエスト
get_hits ヒットの合計数
get_misses ミスの合計数
evictions 空きメモリを取得するために削除されました アイテムの数 (memcache に割り当てられたスペースがいっぱいになった後、古いアイテム)新しい項目に割り当てるスペースを取得するには削除する必要があります)
bytes_read 読み取られた合計バイト数 (要求されたバイト数)
bytes_write 送信された合計バイト数 (結果のバイト数)
limit_maxbytes 割り当てられたメモリ サイズto memcache (bytes)
threads 現在のスレッド数
詳細については、PHP マニュアルの「LXXXIV. Memcache 関数」の章を参照してください。
Memcache の一般的なオブジェクト指向インターフェイスには次のものがあります。
Memcache::connect -- Memcache への接続を開きます
Memcache::pconnect -- Memcache への長い接続を開きます
Memcache::close - - Memcache 接続を閉じる
Memcache::set -- データを Memcache サーバーに保存します
Memcache::get -- Memcache サーバーに保存されたデータを抽出します
Memcache::replace -- すでに存在する 1 つのプロジェクトを置き換えますMemcache サーバー上に存在します (Memcache::set と同様の機能)
Memcache::delete -- 保存されているプロジェクトを Memcache サーバーから削除します
Memcache::flush -- Memcache サーバーに保存されているすべてのプロジェクトを更新します (同様の機能)
Memcache::getStats -- 実行中の現在の Memcache サーバーのステータスを取得します。
Memcache::addServer -- 分散サーバーにサーバーを追加します
php を使用して memcache を操作する
$mem=new Memcache;
$mem->connect ("localhost", 11211);
/*
* 注:
* 1. 同じプロジェクトを 2 回インストールする場合、キーにはプレフィックス
*
*< が必要です。 🎜> */
$sql="ショップから * を選択";
$key=substr(md5($sql), 10, 8);
$data=$mem -> ;get($key);
if(!$data){
$mysqli=new mysqli("localhost", "root", "123456", "xsphpdb") ;
$result=$mysqli->query($sql);
$data=array();
while($row=$result->; Fetch_assoc( )){
$data[]=$row;
}
$result->free();
$mysqli->close();
$mem->set($key, $data, MEMCACHE_COMPRESSED, 3600);
echo $sql;
}
echo '
';<br> print_r($data);<br> echo '';