勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

メモリキャッシュシステムであるMemcachedをPHPにて利用する方法

   2024/05/22  PHP

メモリキャッシュシステムであるMemcachedのインストール方法、IP制限、PHPでの簡単な使い方についてのメモ。

 

インストール

サーバにSSH接続し以下コマンドでインストールする。

yum install memcached php-pecl-memcache

 

IP制限

以下で設定ファイルを開く。

vi /etc/rc.d/init.d/memcached

以下を追記する。

OPTIONS=”-l アクセス許可したいIP”

以下で再起動すると反映される筈。

service memcached restart

 

使い方

ソースコード

<?php
/* memcachedとの接続 */
$memcache = new Memcache;
$memcache->addServer("IPアドレス", ポート);

/* データの保存 */
$memcache->add('key名', 'value値', 0, 3600);

/* データの検索 */
$data = $memcache->get('key名');
echo $data;

/* 切断 */
$memcache->close();
?>

尚、変数だけではなく配列も直接格納できる。

$hash = array(
    'name' => '田中',
    'age' => 19,
    'bool' => true
);
$memcache->add('test', $hash, 0, 3600);
$data = $memcache->get('test');
var_dump($data);

//以下が出力される
array(3) { ["name"]=> string(6) "田中" ["age"]=> int(19) ["bool"]=> bool(true) }

リファレンスについて

https://www.php.net/manual/ja/class.memcache.php

 

使いどころ

MySQLの検索結果をmemcachedに格納するのが良さそう。保存期間を10分とかにしておけば10分に1回しかMySQLに参照しにいかないので負荷も下がり、検索速度も上がる。

 

注意点

サーバーやmemcachedを再起動した際はデータが全て消える点に注意する。

 - PHP

  関連記事

PHP8系で「Uncaught TypeError: count(): Argument」エラーの対応方法
PHP8系で「Uncaught TypeError: count(): Argument」エラーの対応方法

PHP8系で「PHP Fatal error: Uncaught TypeErr ...

HTMLにてaタグクリック時にping属性のデータをPHPで受け取る方法
HTMLにてaタグクリック時にping属性のデータをPHPで受け取る方法

HTMLのaタグにping属性というものを設定できるらしく、設定したリンクをクリ ...

PHPとPAY.JPを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法
PHPとPAY.JPを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法

先日PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する ...

eval関数について
eval関数について

ちょくちょく見ることがあったeval関数について、 なんとなく分かってきたのでメ ...

PhpSpreadsheetで作成したエクセルファイルをPDFファイルに変換する方法
PhpSpreadsheetで作成したエクセルファイルをPDFファイルに変換する方法

以前にPhpSpreadsheetでフォーマット用のエクセルを読み込み、指定した ...