I hate posting micro benchmark of library, it’s kinda stupid when they are not the bottle-neck. Now, I will hate my self 😀
The verdit is: using memcache and redis has similar performance. In our system, we use redis a fast data-structure store, so use it as cache save a moving parts.
- cPickle 50000 rounds, used 1.61123394966
- msgpack 50000 rounds, used 0.296160936356
- memcached with pylibmc save/load 15000 rounds, used 1.68719887733
- memcached python-memcached save/load 15000 rounds, used 3.92766404152
- redis with hiredis save/load 15000 rounds, used 2.76974511147
Acctually we are using redis + msgpack now.
By the way, our new leaderboard service is based on gevent patched flask + redis + sqlalchemy tech stack. A aws 8 core instance give us 900rps, 1.5x throughput of a ruby version (with fiber and em) write by my ex-coworker @flyerhzm.