How do you track page hits or click statistics?
sgrimm at facebook.com
Sun Nov 4 02:40:08 UTC 2007
Write to a logfile that gets gathered up and aggregated into a
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
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.
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
> So my question is, how do I handle such cases to have statistics
> written into shared place to process later DB update?
More information about the memcached