Проблема hot key в кеше. Решения в Go.

Ответ

Один ключ с очень высокой частотой запросов перегружает один узел (Redis) или создает конкуренцию. Решения: локальный кеш перед распределенным (двухуровневый кеш); репликация горячих ключей (несколько ключей с тем же значением); шардирование ключа на несколько (key:1, key:2) и выбор по хешу. В Go реализуют L1 in-memory кеш с коротким TTL поверх Redis.

if v, ok := localCache.Get(key); ok { return v }
v, err := redis.Get(ctx, key)
if err == nil { localCache.Set(key, v, 10*time.Second) }
return v, err
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.