есть таблица mysql, например 10-20 записей. к ней будут часто обращаться с выборкой код примерно такой Код (Text): $model=Model::findbypk($id, 'еще условия'); $model->last_access=time(); $model->save(false); возникла идея закешировать всю таблицу в память,делать изменения в память, и раз в пару минут сбрасывать записи в физическую таблицу насколько эта идея имеет смысл? есть штатные средства для этого, или лучше не париться с этим? про nosql хранилища знаю, типа редис, но думаю что на начальном этапе смысла в редисе нету
Это немного рознится с понятием "выборка". Это уже не кеширование, а виртуальная БД. Я подобный механизм когда-то давно написал для sqLite под C#, потому что найти нечто подобное не смог в свое время, а оно было нужно. И вряд ли есть готовые решения под PHP. Виртуальные хранилища с возможностью синхронизации - это крайне нишевые решения. Проще, имхо, использовать какой-либо nosql-меморишардер и потом, раз в N времени, пробегаться по нему ручками и "прожигать" в базу по определенным правилам.
Внимание вопрос - а в чем причина этого решения? У вас сервер не справляется? Загрузка проца 99%? Оперативка выедается? В таком случае есть проверенная связка mySQL(или любая другая БД) + memcache. Целый фейсбук на ней работает, например. Не падает вроде. Если же это просто "на всякий", то не заморачивайтесь. Проблемы надо решать по мере поступления.
вопрос пока чисто теоретический проекта еще нет Добавлено спустя 1 минуту 1 секунду: стало интересно как такое сделать без редиса
Использовать memcache или аналогичный интерфейс у xCache. Мне второй больше нравится, но это вкусовщина. В противном случае вы тратите время на борьбу с ветряными мельницами...