To add to the additional answers you are probably going to have to use something like Amazon aws. This will allow you to scale up to meet your traffic needs.
With multiple separate instances for web servers with a balancer (elastic beanstalk) sat in front. Basically distribute the users across many webservers.
You will need a seperate rds instance for DB
Seperate ec instance for cron
Take search traffic offsite by using something like algolia
Use cloudflare for distribution, CDN, minification and edge cache
Dont invest in magento level full page cache. Stick with proxy cache.
Agree redis needs to be used and if so seperate instances for its use eg sessions, backend cache
Plus optimizations in magento such as turning off index on save. Minimising heavy data operations for quieter periods.
This stack will cost a fortune but it will get you what you need
Finally profile your theme and code. Remove non essential extensions. Remove developer type development extensions (toolbars, toggle hints, etc).