DBAtlas · データベース運用アトラス

TRYAGAIN Multiple keys request during rehashing of slot: Multiple keys request during rehashing of slot (cluster)(スロットの rehash 中の複数キー要求)

Redis

意味

Redis Cluster で、ハッシュスロットがノード間で移動中 (rehashing/resharding) に、同じスロットに属する複数のキーを含む要求が行われ、一部のキーは移動済みで他は未移動だった。サーバーは少し後で操作を再試行するよう求めている。

原因

スロット移行の進行中に複数キーのコマンド (MGET、MSET、複数キーの Lua、トランザクション) を実行した。移行中のスロットでは一部のキーがソースノードに、一部がターゲットノードにあるため、コマンドをアトミックに実行できない。

対処方法

クライアントでこのエラーを捕捉し、短時間待ってから再試行する (TRYAGAIN は一時的で、resharding が終了すると解消する)。複数キーの操作では、{app_user123}.profile、{app_user123}.settings のようにハッシュタグを使ってすべてのキーが同じスロットにあることを保証する。クラスタのリバランス (resharding) はトラフィックの少ない時間帯に実施する。

DBAtlas で開く →

同じデータベースの他の項目