All,<br><br>I recently began investigating memcached, and im very excited about it. im planning on using it w/ php to implement variables whose lifetime can be the duration of the application.<br>I understand that storing the results of queries to the database can increase efficiency if those variables are checked for the data first on consecutive requests for the data they store, but
<br>i still have a disconnect...<br>what i dont understand is when the data profile of a particular table changes, and the variable in the memcache that represents that table becomes stale, how can the variable be updated efficiently?
<br>obviously w/ php and a unix system, a simple cron could be used to poll the database periodically to see if there are changes to the data profile of a given table. i was thinking to make this even more<br>efficient; triggers could be employed (im using mysql 5+) to update a table, call it
<span style="font-style: italic;">recent_tables_that_changed</span>, dedicated to signifying particular tables in the database have changed. then the cron'd php script could simply check <span style="font-style: italic;">
recent_tables_that_changed </span>to determine which, if any, application variables had become stale (do to a change in data profile). the stale variable could then be updated and the record removed from <span style="font-style: italic;">
recent_tables_that_changed</span>.<br>though decent, i am personally not a fan of this approach, because there would still be a frequent query running against the database just to determine what data had changed so that application variables in the cache
<br>would not remain stale for long once theyve become stale. additionally, the mechanisms' responsiveness would be limited to the time granularity of cron, which i believe is a minute. im wondering if there is some way to signal the cache only when tables, represented by application variables, have changed. if you dont feel like typing out a response, because this is probably a naive question, would anyone mind directing me to a resource or two where i could read up on the topic myself?
<br><br>(sorry for the lengthy posting)<br>thanks,<br><br>-Nathan<br>