It depends upon the type & amount of data you are caching. We usually cache static data with no expiry, only particular key gets the updated data when the main data is updated. However, if you are caching transactional data (Likes, Shares, Enrollments, Views, Launches etc ) you can have cache refresh of <2-3 mins. Again it depends on amount of data getting generated in those 3-4 mins & data your system already have.
You can share the scenario. So, that other developers can suggest better approaches.