Ответы пользователя по тегу Redis
  • Почему Redis обрабатывает запрос в 5 раз дольше, чем запрос напрямую в бд?

    Eugene-Usachev
    @Eugene-Usachev
    Так в Postgres ты производишь выборку на стороне СУБД, а в случае с Redis выгружаешь всё по сети. Если в среднем строка весит 100 байт (а ты JSON используешь, так что там и больше быть может), то ты гоняешь по сети 10 000 * 100 байт, то есть примерно мегабайт памяти. Так и потом ты этот JSON разбираешь в JS (в нём же, да?), в то время как Postgres разбирает таблицу в C++.
    Ответ написан
    Комментировать
  • Redis кеш под Wordpress сожрал всю память, что делать?

    Eugene-Usachev
    @Eugene-Usachev
    Не понимаю вашей проблемы. Redis будет удалять самые старые записи, если он заполнен. Если ничего не делать, он всё ещё будет хорошо работать в качестве кэша.

    1 ГБ - это слабая загруженность, на самом деле. Такой объём можно полностью уместить в Redis или Tarantool.
    Ответ написан
    Комментировать
  • Почему Redis PUB/SUB передаем сообщения хуже чем http tcp?

    Eugene-Usachev
    @Eugene-Usachev
    Я не знаток Redis и по его исходникам не лазил, но все адаптеры, что я смотрел и писал используют TCP, отсюда я делаю вывод, что Redis использует TCP под капотом. Следовательно вы поменяли структуру с
    бек сервер - TCP -> бек сервер
    на
    бек сервер - TCP -> СУБД (не сервер, у неё своих забот хватает) - TCP -> бек сервер.
    - TCP -> второй бек сервер.

    Теперь про советы:
    1 - PUB/SUB у Redis очень производительный, но вы неправильно его используете для этих целей. Я не знаток python и не очень хорошо знаю node, но не вижу у вас ни batching, ни pipelining. Я недавно проводил тесты на Go и пришёл к выводу, что pipelining для PUB/SUB даёт рост скорости более, чем в 4 раза. В документации к Redis очень хорошо описан подход pipeling и большинство адаптеров его так или иначе предлагают, советую провести тесты с ним.
    2 - Вы не по назначению используете PUB/SUB. Для обмена между двумя серверами обычно используют gRPC или TCP или голые сокеты. PUB/SUB используется для масштабирования (я не вижу у вас его в коде, но я не знаток python или node).
    Ответ написан
    9 комментариев