Yes, I use memcached for several things like that.<br><br>I use it for logging site activity.&nbsp; I also use it for gathering statistics.&nbsp; <br><br>The sitelog functionality is especially beneficial.&nbsp;&nbsp; Basically all the web-nodes connect to the sitelog memcache instance.&nbsp; When it needs to log an activity, it does an &#39;incr&#39; on a Counter key.&nbsp; Then &#39;add&#39;s the log entry adding the counter to the key (eg, &#39;logentry-450&#39;).&nbsp; An external script runs every 10 seconds or so and pulls out all the log entries and writes them to a file.&nbsp; It does this by doing a get for the Counter and a Process key.&nbsp; If counter is greater than Process, then it does an &#39;incr&#39; on the Process key, and then retrieves that key (eg, &#39;logentry-450&#39;), and repeats that until it catches up to counter.&nbsp; Add in some logic to handle the case where the logentry hasnt been completed (ie, sleep 1 second and try again), and to handle when the Counter rolls over, and thats basically it.
<br><br>The reason for using memcache to log this data is that if we logged straight to a file, we have some complications with multiple web-nodes accessing the file, and ensuring the file is locked so that only one can write to it at a time.&nbsp; Locking the file also put a bottle-neck on processing the connections that come in.&nbsp; We could have used a database to store the data, but then we have a lot of write activity using up some CPU time on our database server that can be better used actually serving real data.
<br><br>I could post the code we use if anyone wants it.&nbsp; Its in Perl though.<br><br>In addition to that, we use it for statistical purposes, incrementing counters when certain activities occur (such as &#39;new account created&#39;, etc).&nbsp; An external script pulls out (and if applicable, resets) the statistical data and puts it in a seperate sqlite database for accessibility, and also to some daily summary reports (such, number of new accounts, number of new posts, etc).&nbsp; 
<br><br>Clint Webb<br><a href="http://rhokz.com">rhokz.com</a><br><br><br><div><span class="gmail_quote">On 9/11/07, <b class="gmail_sendername">Cal Heldenbrand</b> &lt;<a href="mailto:cal@fbsdata.com">cal@fbsdata.com</a>
&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hey everyone,<br><br>We&#39;re working on a new feature that has ended up being pretty cool, and just thought I&#39;d bring it up for discussion.&nbsp; We have a long running process to print reports with a simple client/server architecture.&nbsp; The server churns through the database stuff and populates the page (along with a memcache status variable) and a client AJAX call reads the memcache variable and displays a progress indicator.
<br><br>I&#39;m sure this can be done with a few server side languages out there, but adding in a load balanced web farm complicates any RPC stuff since the load balancer will redistribute each HTTP request to a different machine.&nbsp; Using memcache for a primitive IPC takes all of the guesswork on communicating between any given two machines.
<br><br>I think it&#39;s kind of neat, is anyone doing anything similar?<br><br>--Cal<br><span class="sg"><br clear="all"><br>-- <br>Cal Heldenbrand<br>&nbsp;&nbsp; FBS Data Systems<br>&nbsp;&nbsp; E-mail:&nbsp;&nbsp;<a href="mailto:cal@fbsdata.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
cal@fbsdata.com</a>

</span></blockquote></div><br><br clear="all"><br>-- <br>&quot;Be excellent to each other&quot;