Do you want to use only one database as storage? In modern projects, to solve similar problems, all three bases can be used simultaneously. MySQL (and increasingly PosgreSQL) is used to store data in a normalized form and perform transactions. If you do not need transactions, you can safely refuse a classic DBMS tied to a hard disk.
MongoDB is attractive as a document repository, since you have articles, you can store them in a denormalized form directly in MongoDB, and due to the fact that it is located in RAM, quickly give them to clients. Good horizontal scalability will allow you to quickly increase the power of your cluster with the growing popularity of the project.
Redis is attractive with the built-in Pub / Sub-mechanism, however, you need to be very careful with it, as it is single-threaded. In case you have one Redis instance running and some lengthy operations are performed on it, a queue of requests will accumulate (sometimes significant). However, it also scales well, is clustered and can withstand an incredible amount of simultaneous connections.
Ps. If I had your task and I was limited to only one of the three databases, I would focus on MongoDB: it allows you to store data in the form of finished documents on the one hand, on the other, it allows you to build up to 64 indexes on a collection, allowing you to bring speed sampling to incredible values (which you most likely will never see on MySQL). Redis, although it allows storage of several data types, is still convenient as a cache, it is not always convenient to store difficult-structured data (text, keywords, authors, etc.) in it.