I believe memcache.add works asynchronously (the docs say it will
never block, and I assume it must take some non-zero time to actually
add anything to the cache), so an add followed immediately by a get
can be too fast for the get to return anything. I don't believe
memcache is intended to work in realtime, and it's probably not a good
idea for a single invocation to need to fetch anything from the cache
that it put there itself; as fast as memcache is you'll always get
better performance from just storing the value in a local variable as
well as in the cache.
In the intended use of memcache (difference instances of your
application reading and writing the same cache), you'll see
practically no lag since the time it takes to add something to the
cache is incredibly unlikely to be longer than the time between
requests even if it's longer than the time between executing two
statements in a single python script.