Вы в основном задали два вопроса в одном вопросе:
Каково значение использования Redis.
Ну, Redis - этоИзвестно, что быстро, потому что он хранит данные в памяти.Если вы спросите, является ли однопоточное приложение очень ограничительным - ну, это продукт, который по конструкции работает так, может быть, он мог бы быть еще более производительным, если бы он был многопоточным, в конце концов, это зависит от фактической реализации под капотом.
В любом случае, он предлагает гораздо больше, чем просто «получение данных в памяти»: - множество примитивов для работы - настраиваемое постоянство - репликация данных и многое другое
Если вопросбудет ли кэш в памяти быстрее (вы упомянули Spring Framework, поэтому вы находитесь на Java Land) - тогда да.
Фактически Spring Cache поддерживает Guava Cache (вместо Spring 5 / Spring Boot 2 используется Caffeine для той же цели) - и да, это будет быстрее в сравнении с Redis.Но что, если у вас есть распределенное приложение со многими экземплярами и одним экземпляром, которое что-то рассчитало и поместило в кеш, как вы можете получить ту же информацию из другого экземпляра, не распределяя информацию между экземплярами.Ну, есть такие инструменты, как Hazelcast, но это выходит за рамки этого вопроса, дело в том, что когда приложение выходит за рамки базовых, такие задачи, как синхронизация кэша / поддержание его в актуальном состоянии, становятся гораздо менее очевидными.
Если вы можете выполнять 1 миллион операций в секунду.
Теперь этот вопрос слишком неопределенный, чтобы на него ответить:
- Какое оборудование использует Redis?
- Какие конфигурации сети?(после того, как все вызовы Redis сделаны по сети)
- Как часто вы сохраняете на диске (Redis имеет конфигурации для этого)
- Используете ли вы репликацию и распределяете ли нагрузку между многими серверами Redis, достигающимиобщая пропускная способность намного выше?
- Какие именно команды выполняются под этим колпаком?
В любом случае, когда дело доходит до бенчмаркинга, вы можете настроить свою систему дополнительным способом.и используйте инструмент, предлагаемый самой Redis:
Глава по сравнительному анализу Redis в руководстве Redis
Инструмент называется redis-benchmark
, вы можете запустить его с различными параметрами и посмотреть, какfast redis на самом деле:
Вот пример (я рекомендую вам прочитать полную статью в ссылке):
$ redis-benchmark -t set,lpush -n 100000 -q
SET: 74239.05 requests per second
LPUSH: 79239.30 requests per second
Это говорит: подключитесь к серверу redis, доступному на localhost, запустите(-n) 100000 запросов в тихом режиме (параметр -q) и запуск только тестов, специфичных для двух команд: set и lpush