Если ваш дизайн требует сквозного кэша, у вас все еще есть проблема с ограничением памяти, выделенной для memcached, где LRU вступает в игру.
LRU имеет два правила при определении того, что выгнать, и делает это в следующем порядке:
- просроченные плиты
- Самая старая неиспользованная плита
Предоставление разных дат истечения срока действия для разных групп объектов может помочь сохранить менее часто используемые данные, которые более дорогие для кэширования в памяти, в то же время позволяя более часто используемым плитам, которые все еще могут попасть в конец очереди, но легко воссоздать, истечь.
Это также тот случай, когда многие ключи кэша оказываются совокупностью других объектов, и если вы не используете хеш поиска для этих объектов, гораздо проще просто позволить объектам истечь через несколько часов, чем предварительно обновлять все связанные ключи, и это также сохраняет соотношение попаданий / промахов, за которое вы эффективно боретесь, используя прежде всего memcached.