Redis cluster + lettuceでmget/msetすると複数リクエスト飛ぶ
Redis clusterに対してmget/msetしたとき、slotが異なるものが混在しているとCROSSSLOT error
が返ります。
したがってhash tagを用いてslotを指定するか、まとめたい単位でhash型のvalueに突っ込むなどのkey設計にする必要があります。
Redis Cluster Specification – Redis
いっぽう、lettuce(async対応のJava Redis client)では、mset/mget中にslotの異なるkeyが混在している場合、エラーを返すのではなく「slotごとにリクエストを投げる」実装になっています。(2018/4/4時点)
なので、key設計ミスっててもちょっと動かす分には問題なくて、負荷をかけた時にめっちゃリクエストが飛んでパフォーマンス出なくてミスに気づく、みたいなことになりえます。(それでハマった)