Почему мне никто не рассказал про хеш-слоты в Redis?
Why didn't anybody tell me about Redis hash slots?
Автор делится опытом оптимизации кеша маршрутов в Redis Cluster. Изначально ключи на основе H3-гексонов не попадали в один слот, из-за чего MGET превращался в десятки отдельных запросов. Решение — хеш-теги в фигурных скобках, подобранные перебором, чтобы ключи группировались по слотам, а также сортировка ключей перед отправкой и отказ от JSON в пользу CSV. В итоге сервис значительно ускорился.
Я измерил, что наше взаимодействие с сервисом маршрутизации — главное узкое место, и думал, что простой алгоритм для работы с Redis станет моим спасением. Я упустил, что n для нас стабильно велико, и мне понадобился более сложный алгоритм, чем я предполагал.