How do you track page hits or click statistics?

Steven Grimm sgrimm at facebook.com
Sun Nov 4 02:40:08 UTC 2007


Write to a logfile that gets gathered up and aggregated into a  
database periodically.

Memcached is not an ideal solution for this problem for a couple  
reasons. First, it's unreliable (in a theoretical sense; the software  
itself is quite solid.) If the memcached server is restarted, you will  
lose all your data; if your data grows beyond the capacity of your  
memcached instances, old data will be silently expired to make room  
for the new stuff.

Second, it's not queryable in the ways you'd probably want to query  
this data, unless you anticipate all your possible queries and store  
data redundantly. As you say, the best you could hope for would be to  
use it as a temporary staging area before writing the real data to a  
database.

A text file, or even a binary log of whatever format you choose, is a  
lot easier to deal with on both the event recording side and on the  
aggregation side. It's also almost certain to be significantly faster  
than memcached given that no interprocess (and possibly network)  
communication is required to log an event.

-Steve


On Nov 3, 2007, at 6:29 PM, <dangalist at centrum.cz>  
<dangalist at centrum.cz> wrote:

> I am trying to figure out problem, how to effective track click  
> statistics like user profile views
> without hitting database or writing statistics to flatfile and  
> processing by cron. It would be best
> to save them directly into memcache so they can be globally  
> available, then run in periods
> database updates. The problem is that there could be thousands of  
> different profiles to count stats for
> so using increment function is not an option.
> Best would be if memcache would support "append" so I could save all  
> hit IDs under one memcache
> key and then process the list to count frequency of IDs and issue db  
> update.
> So my question is, how do I handle such cases to have statistics  
> written into shared place to process later DB update?
>
> Goodwill
>



More information about the memcached mailing list