勉強したことのメモ

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

 - データベース

  関連記事

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を使っている中で次回挿入するオートインクリメントの値と、前回 ...