I am having trouble reading from a memcache server using a different Python Client then the one used to write the values to memcache.
I have a process that writes to the cache with pylibmc, using the 'ketama' behavior. I have a different service that reads from memcache, asynchronously, from a Tornado IOLoop. I have customized tornado-memcache to lookup the server using the python-ketama module which is just a wrapper for the general purpose C library, libketama.
Relevant pylibmc client initialization code:
mc = pylibmc.Client(nodes, behaviors={"no_block": True,
"tcp_nodelay":True,
"ketama": True,
"hash": 'md5'})
Does anyone have experience doing something similar to this (multiple clients)? It seems that either the hash continuums used by the two clients are very different or the keys are being hashed/retrieved differently (both clients should be using md5).
EDIT: I have since written tests to confirm that this is a continuum problem.