facebook twitter hatena line google mixi email

Linux/memcacheインストール

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

memcacheリポジトリを追加(32bit

cd /usr/local/src
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

memcacheリポジトリ追加(64bit centos6

cd /usr/local/src
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

標準のリポジトリに見つからないときだけRPMforgeリポジトをみるよう修正

vi /etc/yum.repos.d/rpmforge.repo
# enabled = 1
enabled = 0

renablerepo=rpmforgeがないときはインストール

# cd /usr/local/src
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.3.4-1.el3.rf.x86_64.rpm
# rpm -Uhv rpmforge-release-0.3.4-1.el3.rf.x86_64.rpm

memcachedインストール

# yum install gcc
# yum --enablerepo=rpmforge install memcached
# yum install zlib-devel
# yum install libmemcached
# yum install memcached-devel
# yum install --enablerepo=remi  php-pecl-memcached


(エラー回避策:Missing Dependency: perl(Net::SSLeay) >= 1.33 is needed by package perl-AnyEvent

yum remove perl-Net-SSLeay
cd /usr/local/src
# 32bit
wget http://packages.sw.be/perl-Net-SSLeay/perl-Net-SSLeay-1.36-1.el5.rfx.i386.rpm
rpm -i perl-Net-SSLeay-1.36-1.el5.rfx.i386.rpm
# 64bit
wget http://packages.sw.be/perl-Net-SSLeay/perl-Net-SSLeay-1.36-1.el5.rfx.x86_64.rpm
rpm -i perl-Net-SSLeay-1.36-1.el5.rfx.x86_64.rpm

memcache使用確認

# php -i | grep memcache

memcache起動

# /etc/rc.d/init.d/memcached start

自動起動

# /sbin/chkconfig memcached on
# /sbin/chkconfig --list memcached

セキュリティ

公開サーバにmemcacheを入れた場合は以下のように接続元サーバを指定
# vi /etc/sysconfig/memcached
# OPTIONS=""
OPTIONS="-l 127.0.0.1"

キャッシュサイズなど設定

# vi /etc/sysconfig/memcached
MAXCONN="1024"
CACHESIZE="64"
#OPTIONS=""
OPTIONS="-l 127.0.0.1"

上の例だとcacheサイズは64MB

4Gだとこんな感じで

CACHESIZE="4096"

キャッシュサイズ確認

$ telnet localhost 11211
stats
STAT limit_maxbytes 67108864

終了はctrl+]

telnetで動作確認

$ telnet 127.0.0.1 11211
set key1 0 3600 6
value1
STORED
get key1
VALUE key1 0 6
value1
END

終了はctrl+]

httpd再起動

# /etc/rc.d/init.d/httpd restart

phpライブラリmemcacheとmemcachedの違い

memcachedのほうが性能が良いらしい。(php5.2以上で動作

pecl install memcached # Zend_CacheだとLibmemcache
pecl install memcache # Zend_CacheだとMemcached

http://samurai.blog.shinobi.jp/Entry/384/

pecl-memcachedインストールエラー

  1. 1.0系でないとならないが、libmemcacheはpeclで入れるとバージョンが古いので手動で入れる
cd /usr/local/src
wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz
tar xzf libmemcached-1.0.16.tar.gz
cd libmemcached-1.0.16
./configure
make
make install


  1. undefined symbol: memcached_last_error_errnoなエラーが出る場合は更新したlibbmemcachedが反映されていないので、pecl-memcachedを再インストールする
pecl uninstall memcached
pecl install memcached

エラー1

error: expected declaration specifiers or ‘...’ before ‘memcached_server_instance_st’

libmemcached-1.0.17がバグっているようなので17を避ける


memcacheでPermissionエラーが出る場合

firewallかselinuxを切ってみる

コンソールでログイン

$ telnet localhost 11211
stats 状態確認
delete <キャッシュID> 削除
flush_all キャッシュ全削除
^] (ctrl+])
q 終了

コンソールコマンド一覧

stats items #item一覧
stats cachedump 4 4 # キー取得(numberが数字のところSTAT items:4:number 4だったら
key HOGE1 # 値取得

コンソールステータス一覧

stats
STAT pid 1495 # プロセスid
STAT uptime 1569442 # 起動時間s
STAT time 1380115547 # 現在時間
STAT version 1.4.5 # ver
STAT pointer_size 64 # 32bit or 64bit
STAT rusage_user 0.852870 # プロセスがユーザモードで動作した累計時間
STAT rusage_system 0.491925 # プロセスがカーネルモードで動作した累計時間
STAT curr_connections 5 # 現在のコネクション数
STAT total_connections 68 # 累計コネクション数
STAT connection_structures 17 構造体接続数
STAT cmd_get 2261 # GETコマンド数
STAT cmd_set 719 # SETコマンド数
STAT cmd_flush 0 # FLUSHコマンド数
STAT get_hits 1685 # GET_HIT数
STAT get_misses 576 # GET_MISS数
STAT delete_misses 0 # 削除MISS数
STAT delete_hits 0 # 削除HIT数
STAT incr_misses 0 
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0 # CASミス数
STAT cas_hits 0 # CAS_HIT数
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 140486
STAT bytes_written 183371
STAT limit_maxbytes 67108864 # 最大byte数
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4 # リクエストあたりのスレッド数
STAT conn_yields 0
STAT bytes 11754
STAT curr_items 80
STAT total_items 719 # 累計アイテム数
STAT evictions 0 # 容量不足で追い出しされたアイテム数
STAT reclaimed 427 # 期限切れになったアイテムの領域を再利用した回数

参考 http://taka512.hatenablog.com/entry/20100324/1269428213

http://d.hatena.ne.jp/tetsuyai/20111221/1324441717