CentOS7へのmemcachedインストールと、その動作確認方法です。
環境情報
# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) # uname -a Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
インストールはyumで簡単に行えます。
# yum -y install memcached
設定確認
バージョン情報を確認
# memcached -h | head -n1 memcached 1.4.15
設定ファイル確認
ポートやユーザなどを設定します。
vi /etc/sysconfig/memcached
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""
起動とステータス確認
起動
# systemctl start memcached
ステータス確認
# systemctl status memcached memcached.service - Memcached Loaded: loaded (/usr/lib/systemd/system/memcached.service; disabled) Active: active (running) since 月 2016-02-15 04:45:29 CET; 3s ago Main PID: 4731 (memcached) CGroup: /system.slice/memcached.service └─4731 /usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024 2月 15 04:45:29 localhost.localdomain systemd[1]: Starting Memcached... 2月 15 04:45:29 localhost.localdomain systemd[1]: Started Memcached.
動作確認(telnet利用)
$ telnet localhost 11211 Trying ::1... Connected to localhost. Escape character is '^]'.
例えばmykeyというキーでデータを登録してみます。
set mykey 0 60 7 myvalue STORED
キーの名前の後に3つの数字を並べていますが以下の通りです。
1つ目 | データ圧縮有無 0:非圧縮,1:圧縮 |
2つ目 | データ保持期間 UNIXタイムスタンプ or 現在からの秒数 ※0は有効期限無し |
3つ目 | データバイト数 ※上記例のmyvalueは7バイト |
登録したデータはgetで確認できます。
get mykey VALUE mykey 0 7 myvalue END
1分経過すると値が消えているのがわかります。
get mykey END
手動で消すならdeleteや
delete mykey
flush_allも使えます。
flush_all
終わったらquitでコネクションを終了します。
quit Connection closed by foreign host.
他にもmemcachedの状態を確認するコマンドがあります。
stats stats items stats cachedump stats slabs ..
動作確認(memcached-tool利用)
利用方法はとても簡単です。
$ memcached-tool Usage: memcached-tool <host[:port] | /path/to/socket> [mode] memcached-tool 10.0.0.5:11211 display # shows slabs memcached-tool 10.0.0.5:11211 # same. (default is display) memcached-tool 10.0.0.5:11211 stats # shows general stats memcached-tool 10.0.0.5:11211 dump # dumps keys and values
以下のように使います。
$ memcached-tool localhost:11211 display # Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM 1 96B 366s 1 3 yes 0 0 0
memcachedがデフォルトの11211ポートで起動している場合は、ポート番号は省略可能です。
$ memcached-tool localhost display
動作確認(nc利用)
memcached-toolのソースコードはこちらです。
github.com
これを見るとわかるのですがSocketにコマンド流し込んでいるだけです。
nc使っても似たようなことできます。
$ echo -e "get key1" | nc -C localhost 11211 VALUE key1 0 1 a END $ echo -e "stats slabs" | nc -C localhost 11211 STAT 1:chunk_size 96 STAT 1:chunks_per_page 10922 STAT 1:total_pages 1 STAT 1:total_chunks 10922 STAT 1:used_chunks 4 STAT 1:free_chunks 10918 STAT 1:free_chunks_end 0 STAT 1:mem_requested 287 STAT 1:get_hits 4 STAT 1:cmd_set 4 STAT 1:delete_hits 0 STAT 1:incr_hits 0 STAT 1:decr_hits 0 STAT 1:cas_hits 0 STAT 1:cas_badval 0 STAT 1:touch_hits 0 STAT active_slabs 1 STAT total_malloced 1048512 END
簡単な関数作れば、memcached-toolには無いsetなんかも自由に実行できます。
$ mem-cli(){ echo -e $1 | nc -C localhost 11211; } $ mem-cli "set mykey 0 0 7\r\nmyvalue" STORED $ mem-cli "get mykey" VALUE mykey 0 7 myvalue END