redisのincrBy操作keyの失効時間を設定する方法

654 ワード

概要
最近redisを使用して、中のincrBy操作を使用していますが、このAPIはkeyの失効時間を設定するためのパラメータを提供していません.自分でlowを比較する方法を考えました.
 Long limit = redisStringService.incrBy(limitCacheKey, 1);
 //    1     ,  key    
  if (limit == 1) {
      redisStringService.expired(limitCacheKey,2);
  }

つまりincrByの戻り値が1の場合、1を手に入れたスレッドにkeyの失効時間を設定してもらいます.
incrByは原子的であるため,1を取得したのは必ず1つのスレッドしかないため,expired操作を同時に呼び出す可能性はない.
検証した結果,この方法は実行可能であるが,lowと感じた.ネットユーザーがincrBy操作のkeyの失効時間をどのように設定したのか分からない.指導を仰ぐ.