diary

日記です

redis2.8のttlが複雑怪奇だという話

結論

  • Redis 2.8(unstable)はttlの挙動が変わっているので気をつけろ

概要

http://trapezoid.hatenablog.com/entry/2013/02/10/035020

これの続きです。この記事の中で触れた、ttlコマンドの挙動に関してunstableから微妙な変更が加わっていました。どうやら2.8で入るっぽいです

いままで(stable)

  • ttlが自然数として表現できる場合には自然数を返し、なければ-1を返す
  • そもそもexpireを設定していない場合も、-1を返す

これから(unstable)

  • ttlが自然数として表現できる場合には自然数を返す
  • expireが存在するが、既にexpireすべき時間を迎えており、masterからのキー削除命令を待っているキーの場合には0を返す
  • そもそもexpireを設定していない場合は、-1を返す
  • そもそも指定したキーがdb上に存在しない場合には-2を返す

という感じで、意味合いが4通りぐらいになります。色々見分けられるようになるのはいいんですけどちょっとこれはどうなんですかね。。。