memcached関連
2021/03/12
さくらvpsにmemcachedを入れて触ってみた際のメモ。
----------
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再起動した際は
全部消えるので注意する。
関連記事
ON DUPLICATE KEY UPDATE後にinsert_idを取得すると結果が0になる
MySQLでON DUPLICATE KEY UPDATE句指定し、データの登録 ...
PHP / MySQLで2038年問題の対策
先日打ち合わせの際に「タイムスタンプを使ってユニークキーに云々~~」といったよう ...
MySQLでデータの集計時に1日の起点を任意の時間に変更する方法
MySQLで1日毎の集計を行う際、例えば2020/01/01のデータは2020/ ...
さくらVPSにredisをインストールした際のメモ
さくらVPSにredisをインストールした際のメモ。 目次1 イン ...
MySQLで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法
phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回 ...