delef
@delef
Разработчик (Crystal, Python, Ruby, PHP, JS)

Как ускорить redis.get?

Всем доброго утра!

Сразу к делу. Front-end API работает только с Redis. Для "нахождения" ответа нужно сделать около 10-20 get запросов к redis. Когда появилась нагрузка более 200 RPS (на данный момент ~250), очень стал тормозить метод поиска данных.. т.е. когда нагрузка около 50-150 RPS, все ок, а дальше начинает оч сильно подниматься время ответа.

Инстанс с Redis находится в локальной сети, настройки примерно стандартные (увеличено число коннектов tcp, максимальное число клиентов 10к). Профайлер мне выдает, что именно get все тормозит. Какие есть варианты решения проблемы?

P.S.
- с ресурсами инстанса все ок, redis даже 5% не использует (ограничений у него нет)
P.P.S.
прошу прощения за трактовку вопроса, уже утро, туго соображаю
  • Вопрос задан
  • 419 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Fortop
Tech/Team lead
Для начала определить узкое место.
Кто сказал что это Редис?

Ставим xhprof
Собираем метрики
Анализируем.

После этого возвращаемся сюда с правильным вопросом


Мда. Про профайлер пропустил.
В этом случае посмотреть информацию о размере передаваемых данных (возможно не хватает пропускной способности сети)
Попробовать отключить снапшот на диск (он может замедлить работу, если данные обновляются)
Заменить 20 запросов одним.
Редис позволяет извлекать несколько ключей одновременно MGET
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы