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のように複数のキーを扱うコマンドは、すべてのキーが同じスロットに収まる場合にのみ有効だ。