memcachedをtelnetで操作して"CLIENT_ERROR bad data chunk"の原因と対策

memcachedはtelnetを使うとmemcacheプロトコルで直接操作できます。

このときよくやってしまう失敗がこれ。

よくある間違い

$ telnet localhost 11211
set foo 0 0 3
get foo
CLIENT_ERROR bad data chunk
ERROR
↑何が間違っているかわかるでしょうか?

答え
  • set foo 0 0 3と書いただけでは何もセットされない
  • set foo 0 0 3の次の行でvalueを書いてあげないといけない

正しいやり方

set foo 0 0 3
bar
STORED
get foo
VALUE foo 0 3
bar
END
こんな感じです。

数字の意味

コマンドキー名flagsexptimebytes
setfoo003

有効期限を10秒、4バイトのデータを保存したいなら、
set steve 0 10 4
jobs
となります。
(flagsはとりあず気にしなくても大丈夫です)
参考
カテゴリ:

人気記事