勉強したことのメモ

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

memcached関連

   2021/03/12  データベース

さくらvpsmemcachedを入れて触ってみた際のメモ。

----------

1:インストール

紆余曲折したのでちゃんとは覚えてないけど、
ヒストリ見る限り↓のコマンドっぽい。

yum install memcached php-pecl-memcache

----------

2:管理画面(memcache.php)の設置

↓↓からダウンロードしたzipを解凍して、
適当なディレクトリにアップする。

http://livebookmark.net/memcachephp/memcachephp.zip

尚、htaccessでベーシック認証をかけている
ディレクトリにおいた場合、リダイレクトループ? っぽい挙動になり
正常にページが開かなかった。

30行目付近にある、

$_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME ||$_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD

を消せば表示された。

----------

3:IP制限

設定ファイルを弄る。

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

で開いて下記の通り変更。

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

再起動をかける。

service memcached restart

----------

4:使い方

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

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

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

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

困ったときはリファレンス参照する。
http://www.php.net/manual/ja/class.memcache.php

 

あと変数だけじゃなくて配列も直接入れられる。

 

$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) }

 

シリアライズせなあかんのかなぁと思ってたけど、

管理画面見る限り自動でシリアライズして格納してくれとった。

----------

5:使いどころ

下記が参考になった。

DB検索結果をmemcachedに突っ込んでおく。
保存期間は10分。
↓↓
10分に1回しかDBへ参照しに行かないので、
負荷が下がるし速度も速い。

http://dbinfo.sakura.ne.jp/?contents_id=219

----------

インストールとかはけっこう困ったけど、
使うのはkey/valueで直感的。

サーバー再起動とかmemcached再起動した際は
全部消えるので注意する。

 - データベース

  関連記事

MySQLで「doesn't have a default value」エラーの対処

MySQLでINSERT時に「Field 'カラム名' doesn't have ...

mysqliで検索

今後、PHPでmysql関数はエラーでる! という話を聞き、 取り急ぎmysql ...

MySQLで一連の処理を関数のように実行できるストアドプロシージャの設定と利用方法

MySQL関連のサイトを見ていた際にストアドプロシージャが云々というページがあっ ...

Codeigniter4でMySQLに接続しCRUD操作する方法

Codeigniter4.4.4でMySQLに接続しCRUD操作したい。また、任 ...

MySQLiでFOUND_ROWS(全件数取得)

MySQLiでFOUND_ROWS(全件数取得)。 $sql = ' SELEC ...