add memcache, add async method