pecl install memcache
インストールが完了したら、PHP構成ファイル(PHP.ini)でMemcache拡張機能を有効にする必要があります。 php.iniファイルを開き、次のコードを追加します。
extension=memcache.so
次に、Webサーバーを再起動して、構成を有効にします。
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
ここでは、 '127.0.0.1'はMemcacheサーバーのIPアドレスであり、 11211はMemcacheのデフォルトポート番号です。必要に応じて、実際のサーバーアドレスとポートに変更します。
キャッシュデータ:
$data = 'キャッシュデータ';
$key = 'cache_key';
$expiration = 3600; // 有効期限をキャッシュします,秒単位のユニット
$memcache->set($key, $data, 0, $expiration);
この例では、文字列「キャッシュデータ」をキー名「cache_key」でキャッシュに保存し、有効期限を3600秒(つまり1時間)に設定します。
キャッシュされたデータを取得する:
$key = 'cache_key';
$data = $memcache->get($key);
if ($data === false) {
// データは存在しません,データを再生し、キャッシュに保存します
$data = generate_data();
$memcache->set($key, $data, 0, $expiration);
}
キャッシュされたデータが存在する場合は、直接取得します。存在しない場合は、データを再生してキャッシュします。
キャッシュされたデータを削除します:
$key = 'cache_key';
$memcache->delete($key);
キー名を指定することにより、指定されたデータをキャッシュから削除できます。
圧縮データ:
$data = '大量のデータ';
$key = 'cache_key';
$expiration = 3600;
$memcache->set($key, gzcompress($data), MEMCACHE_COMPRESSED, $expiration);
GZCompress関数を使用することにより、ストレージ用にデータを圧縮できるため、データが転送されたときにネットワークの負担が減少します。
CAS(チェックアンドセット)操作を使用します。
$key = 'cache_key';
$cas = 0;
$data = $memcache->get($key, null, $cas);
// データを変更します
$data['field'] = '新しい値';
// を比較することによって$cas価値,行為CAS動作します
$memcache->cas($cas, $key, $data, 0, $expiration);
CASの運用は、キャッシュされたデータを同時に変更し、データの一貫性を確保するときに、人種条件を回避するのに役立ちます。