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 '';
$mem->close();

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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