Redisのハッシュスロットを知らなかったせいで、MGETが12回の往復に化けていた

Why didn't anybody tell me about Redis hash slots?

ギグエコノミー配送アプリで配車マッチングを担うエンジニアが、Redisクラスタのハッシュスロットの存在を遅まきながら知るまでの話。H3で座標を丸めたルート推定キャッシュをMSET/MGETで扱ったところ、キーが別スロットに散り、1回のMGETが大量の往復に分裂。ハッシュタグでスロットを固定し、キーをソートしてノード単位にファンアウトし、EVALで期限切れも解決。JSONからCSVへの変更やベンチマークハーネスの重要性も語られる。

Redisは16,384個のハッシュスロットを作り、それをクラスタのノード間に分配する。MSETやMGETのように複数のキーを扱うコマンドは、すべてのキーが同じスロットに収まる場合にのみ有効だ。
  1. lesam

    このキャッシュでどうやってデータを再び見つけるのか、混乱しています。キャッシュキーをランダムにソルトしているように見えるので、その後のリクエストがどうやってキャッシュされたデータを見つけるのか理解できません。

  2. HeavyStorm

    著者がこの記事にかなり手をかけたことは分かります。でも、もうAIっぽい話にはうんざりです。ましてや一日中Claudeと話した後ならなおさらです。残念ですね——ブログはこの5年で死につつあり(少なくとも衰退しており)、AIがとどめの一撃になるかもしれません。

    「あなたはロボットのように聞こえる」という言葉が、私にとってまったく新しい意味を持ちました。

  3. abofh

    なぜなら、それが当たり前になる前に誰かが作ったものを引き継ぎ、サーバーレスに移行したときにそれに気づいたからです。

    記事自体についてはどうやって推測したんでしょうね?

この日のほかの記事

2026-09-26