まだ試してないけどblog書く。
memcached 1.4.8-rc1がでていますが、touch という新しいコマンドがが追加されています。アスキープロトコル、バイナリプロトコル両方とも使えます。
http://code.google.com/p/memcached/wiki/ReleaseNotes148rc1
touch コマンドは、有効期限をアップデートできる命令で、アスキープロトコルの場合
> touch <key> <exptime> [noreply]\r\n
と使えるようです。データを変更せずにexpiresをアップデートしたい場合に使えるようです。
レスポンスは、有効期限が更新できた場合
TOUCHED\r\n
キーがなかった場合
NOT_FOUND\r\n
です。
そういえば、existsコマンドが欲しいとか聞いたことありますね。
もうひとつ、1.4.8にはさんざん悩まされてきた最大接続数に達したときの動作に、実験的なオプションが追加されています。
$ memcached -o maxconns_fast
今までは、最大接続数に達した場合は、memcachedで新しい接続を受け付けないように(backlogに貯める)して、他の接続が切れるまで待っていましたが、このオプションを付けると、最大接続に達した場合、すぐにエラーを返すようになります。
こっちの方がシンプルだし、バグもなくなるんじゃないかなぁと思うところ。