タグ

ブックマーク / trapezoid.hatenablog.com (2)

  • master-slave構成のredisでttl(expire)を持つキーを使う方法 - diary

    いろいろあってめんどい。 ttlを指定したキーの実削除は、キーの参照があった際又は100ms毎に行われるttlを持つ全キーからのランダムルックアップによる検査により行われる 故に、短いttlを持つキーが多数存在する場合には、(実際に参照しない限り)実削除が間に合わなくなる(意図した時間に揮発しない)事がある これだけならまあ参照すればいいんですが master-slave構成時、slaveから見たキーの削除はmaster側からの削除命令が無ければ行わず、ttl < 0となったキーに関してもこれは同様に扱われる 故に、揮発されるべきキーがslaveから参照されても、実削除は行われず、(master側の定期実削除が間に合っていない場合)slaveはそのまま揮発されているべきキーの値を返してしまう 対応策は masterに対してgetを投げる master-slaveとは何だったのか… redi

    master-slave構成のredisでttl(expire)を持つキーを使う方法 - diary
  • redis 2.2を複数slave構成かつevictedありで運用してるとマジヤバイ話 - diary

    結論 Redis 2.2使ってる奴はさっさとアップデートしろ タイトルの条件で使用メモリがmaxmemoryに達するとキーがまるごと全部消し飛ぶ(evictedする)可能性があります。2.4ではとっく対策されているので、さっさと2.4以降、というかもうstableは2.6だし2.6にしろ 概要 わかりやすい全容(ぶっちゃけこっち見たほうが多分速い)。 https://github.com/antirez/redis/issues/327 https://github.com/antirez/redis/blob/2.6/src/redis.c#L2331-L2351 だいたい下記のような感じのことが書いてあります Redis 2.2でMaster-Slave構成(特に多数のslaveを接続している)を取っており maxmemory-policyにnoeviction以外を指定している状態で

    redis 2.2を複数slave構成かつevictedありで運用してるとマジヤバイ話 - diary
    yife
    yife 2013/04/23
  • 1