memcached
- 設定は /etc/sysconfig/memcached を見る
セキュリティ
- 接続元制限
- /etc/sysconfig/memcached の OPTIONS で
-l 127.0.0.1
を指定し接続元制限を行う
- /etc/sysconfig/memcached の OPTIONS で
- 接続元制限
stats
- memcached の状態表示
- evictions
- 有効期限に達してないデータが memcached より追い出されたらここの値が増える。
pid プロセスID uptime memcachedの起動時間(秒) time 現在時刻のタイムスタンプ version memcacheのバージョン pointer_size OSが32bit又は64bit rusage_user プロセスがユーザモードで動作した累計時間?(秒.マイクロ秒) rusage_system プロセスがカーネルモードで動作した累計時間?(秒.マイクロ秒) curr_items 現在のデータ数 total_items 累計のデータ数 bytes 現在の使用メモリ curr_connections 現在のコネクション数 total_connections memcacheの起動からの累計コネクション数 connection_structures memcacheが確保したコネクション構造体数 cmd_get GETコマンド発行の累計 cmd_set SETコマンド発行の累計 get_hits リクエストでキーが見つかった数 get_misses リクエストでキーが見つからなかった数 evictions 容量(メモリ)不足でmemcacheから追い出した回数 bytes_read ネットワークから受信したバイト数 bytes_written ネットワークへ送信したバイト数 limit_maxbytes memcacheの最大容量(バイト) threads リクエスト当たりに動作するスレッド数
キャッシュデータの確認
# memcached-tool localhost:11211 dump
エラー
- CLIENT_ERROR bad data chunk
telnet 時の set の仕方が悪い
下記は NG
# telnet localhost 11211 Trying ::1... Connected to localhost. Escape character is '^]'. set a 0 0 3 get a CLIENT_ERROR bad data chunk ERROR
下記は OK
# telnet localhost 11211 Trying ::1... Connected to localhost. Escape character is '^]'. set a 0 0 3 b STORED get a VALUE a 0 3 b END
PHP
接続用モジュール
- php-pecl-memcache
- 開発止まっている
- php-pecl-memcached
- php-pecl-memcache
php -i を利用して変更されていることを確認する
php-pecl-memcache
install
# yum install php-pecl-memcache
/etc/php.d/memcache.ini
session.save_handler = memcache session.save_path = "tcp://192.168.0.3:11211, tcp://192.168.0.4:11211"
- tcp:// が必要
- 同期のためではなく、片方が落ちたら、片方を使う設定
php-pecl-memcached
install
# yum install php-pecl-memcached
/etc/php.d/z-memcached.ini
session.save_handler = memcached session.save_path = "192.168.0.3:11211, 192.168.0.4:11211"
- tcp:// が不要
- 同期のためではなく、片方が落ちたら、片方を使う設定
サンプルソース
<html> <body> <?php echo "test1";?> <?php session_start(); if(isset($_SESSION['test1'])){ $_SESSION['test1'] = $_SESSION['test1'] + 1; }else{ $_SESSION['test1'] = 0; } ?> <?php print_r($_SESSION); ?> </body> </html>