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再起動した際は
全部消えるので注意する。
関連記事
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 ...