Ну тут скорее кэш надо представлять как LIFO список с N записями.
Если это N превышено - выбрасываем самые старые записи из памяти, а получаем их уже с диска и с сервера по надобности.
я бы все же по времени хранил, так как если будут активно юзать то будут больше памяти и это нормально, но вообще данная тема не тема данного чата