読者です 読者をやめる 読者になる 読者になる

CentOS7でmemcachedのインストールから動作確認

Linux memcached

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利用)

memcachedtelnetを使って直接接続できます。

$ 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
..


毎回telnetで接続も面倒なので、memcached-toolというユーティリティも用意されています。

動作確認(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