Я не буду ручаться за синтаксис, так как я не кодирую PHP, однако это выглядит как правильный подход со следующими наблюдениями.
Вы не должны принимать md5 «запроса».$ SQL.Было бы лучше сделать 'query'.md5 ($ sql), чтобы префикс действовал как псевдо-пространство имен, так как вы можете гарантировать, что' ns1: '. Md5 ($ sql) не будет конфликтовать с' ns2: '.md5 ($ SQL).Существуют более разумные способы использования таких псевдо-пространств имен, которые хорошо справляются со следующими часто задаваемыми вопросами:
http://code.google.com/p/memcached/wiki/FAQ#How_do_I_access_memcached?
Следующее, что я хотел бы сказать, это то, что я опасался бы иметь явное время истечения.Часто лучше, чтобы кеш обрабатывал, какие элементы выгружать, когда ему нужно место.Если у вас занят сайт, вы можете обнаружить, что явное истечение срока действия приведет к ненужным дампам кеша и проблемам с производительностью, которые вы должны решить, добавив кеш.Здесь есть хорошая отправная точка по некоторым вопросам:
http://highscalability.com/strategy-break-memcache-dog-pile
И учитывая заголовок, я не могу удержаться от ссылки на эту статью;
http://blog.craigambrose.com/past/2007/11/13/caching_makes_your_brain_explode/
Поэтому я склонен явно аннулировать соответствующие ключи кэша при изменении данных, а не использовать произвольные временные ограничения.Но в любом случае, попытайтесь понять последствия любого подхода, который вы используете.
НО
Первое, что я бы сказал на самом деле: вы уже настроили свою базу данных?В частности, используете ли вы кеш запросов, который можно включить и настроить?Это, вероятно, окажет гораздо более существенное влияние на производительность, чем добавление memcached - конечно, пока вы не масштабируете возможности, значительно превышающие возможности одного сервера.