cache database results for two minutes
if cache is empty populate then update database, if not, update database then repopulate