ホームページ >バックエンド開発 >PHPチュートリアル >PHPデータベースでのmemcacheの使用法

PHPデータベースでのmemcacheの使用法

墨辰丷
墨辰丷オリジナル
2018-05-18 14:24:261401ブラウズ

この記事では、主に PHP データベース操作における memcache の使用法を紹介し、memcache のダウンロード、インストール、設定、および関連する使用スキルを例の形式で詳細に分析します。必要な友人は参考にしてください。詳細は次のとおりです。 :

同時実行性の高い Web アプリケーションでは、データベース アクセスのボトルネックが常に大きな問題となり、特定の制限に達すると、データベースは簡単にクラッシュする可能性があります。必要に応じて、読み取り速度が速くなるだけでなく、データベース IO も節約されます。

memcache の概要Memcache は、メモリ内に統合された巨大なハッシュ テーブルを維持することにより、画像、ビデオ、ファイルやデータベースの検索結果など。簡単に言うと、データがメモリに呼び出されてからメモリから読み取られるため、読み取り速度が大幅に向上します。 memcacheの

memはメモリ、cacheはキャッシュ、組み合わせてメモリキャッシュという意味です。 memcache を使用する場合、まず memcache からデータを読み取り、見つからない場合はデータベース内で検索し、次回検索するときに簡単に見つけられるようにデータを memcache に保存します。

注:

memcache は、メモリのクローズと解放の特性により、内部的に格納されたコンテンツを永続化することができないため、1M を超えるデータは保存されません。保管できません。

memcache は libevent ライブラリに依存します。インストールする前に、libevent ライブラリがインストールされていることを確認する必要があります。 memcache は、キーと値のストレージのみをサポートする軽量のインメモリ データベースです。
memcache にはユーザーとパスワードの設定がないため、セキュリティ目的を達成するために、構成中に接続を制限するようにファイアウォール ポートを構成する必要があります。
repcached を使用すると、memcache のシングルマスター、シングルスレーブ、マスター/スレーブのレプリケーションも簡単に実装できます。


memcache のアプリケーション シナリオ

永続的なストレージを必要としない大量のデータ、またはデータベースに既に存在し変更されない大量のデータを保存します。

データを非常に頻繁に読み取ります。要件は 1M 未満です。

データ型は単純なキーと値のデータです。 計算結果とレンダリングされた Web ページ テンプレート ファイル。
アトミックにインクリメントできるため、カウントに使用できます。
データの有効期限を設定し、有効期限データを保存できるため。ただし、割り当てられたメモリが不十分な場合、memcache は最長未使用期間原則 (LRU) に基づいてメモリを再利用するため、情報が事前に削除される可能性があることに注意してください。
memcache を使用してセッション情報を保存し、マルチサーバーのセッション共有を実現します。必要な構成: php.ini:


session.save_handler = memcache //设置session的储存方式为memcache 
memcache.hash_strategy = "consistent"//设置memcache的hash算法为一致性哈希算法。 
session.save_path = "tcp:/ip:port" //设置session储存的位置,多台memcache用逗号隔开。

memcache サーバーのインストール

memcache のインストールは簡単です。サーバーは公式 Web サイト http://www.memcached.org/ からダウンロードして解凍できます。ディレクトリ内で ./configure -prefix=/path を実行してコンパイルし、次に make / make test / make install を実行して直接実行できるバイナリ ファイルを取得します。

./memcached コマンドを使用してサーバーを起動します。 一般的に使用されるパラメーターは次のとおりです:

-p ポート リスニング ポート (デフォルト: 11211)

-d Memcached をバックグラウンド モードで実行します

-u ユーザー名 Memcached を実行しているアカウント-m n max メモリ使用量、単位は MB、デフォルトは 64 MB です
-c 接続 最大接続数、デフォルトは 1024 です


memcache の一般的なコマンド

を使用して memcache に接続した後memcache クライアントまたは Telnet を使用して、memcache 操作が実行されます。

memcache は単純なデータ構造を持っているため、コマンド ライン コマンドはほとんどありません。一般的なコマンドを使用してコマンド フォーマットを簡単に分析します。

add key flags expire_time length \r\n value

flags: 圧縮/シリアル化するかどうか。通常は 0。

expire_time: 保存後の有効期限が切れるまでの時間。単位は秒(s)で、最大長は 30 日です。30 日を超える長さは、「いつ期限切れになるか」を示すタイムスタンプとみなされます。0 に設定すると、期限切れになりません。

length: 値の長さ。長さを入力して Enter を押すと、コマンド ラインは次に入力した長さの文字を読み上げます。

set key flags expire_time length  //如果有值则覆盖原值,没有则新增,add在有值时会存储失败
get key               //获取key的值
replace key flags expire_time length// 替换一个已存在的key
append/preappend key flags expire_time length// 给key的value后面/前面添加新内容。
preappend key flags expire_time length   // 给key的value前面添加新内容。
inc/dec key [n]             //key的值递增/递减1/[n]
delete key               //删除一个key
flush_all [n]              //[在n秒后]删除全部数据
stats [options]             //获取memcache[有关某一项]的详细信息

PHP の memcache 拡張機能とアプリケーション

https://pecl.php.net/index.php で検索して、必要な memcache 拡張機能パッケージを入手します。

Linux システムでは、ダウンロードするバージョン (最新の安定バージョンを推奨) を直接選択します。解凍後、解凍ディレクトリ内の phpize ツールを使用して設定ファイルを生成し、インストールが完了したら、それを使用してインストールします。 /php.iniにあります。詳しくは前回の記事 http://www.jb51.net/article/121314.htm をご覧ください。

Windows で、リンクの右側にある「Windows ロゴ DLL」リンクをクリックし、新しく開いたページで、バージョン、32 ビット/64 ビット、スレッドセーフ/非に応じて必要な拡張機能を選択します。 -thread-safe、特定のオプションは phpinfo() ページで確認できます。ダウンロードが完了したら、それを phppath/ext/ ディレクトリに置き、extension=php_memcacache.dll を php.ini に追加して、サーバーを再起動してインストールを完了します。

在phpinfo()页面中看到memcache扩展后,说明安装成功,我们就可以在php脚本中使用关于memcache的类函数库了。

在手册中我们可以找到许多关于php的memcache扩展的使用,以下是一个典型的memcache使用流程。

$m=new Memcache();
$m->connect($host,$port);
$m->add($key,$value[,flags,$expire_time]);
$content=$m->get($key);
$m->close();

这是一个简单的memcache连接程序,在进行memcache分布式存储时,还需要用到$memcache->addServer()向memcache集群中添加服务器。

相关推荐:

ThinkPHP框架中使用Memcached缓存数据步骤详解

ThinkPHP框架中使用Memcached缓存数据的方法

php-memcached扩展安装

以上がPHPデータベースでのmemcacheの使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。