def delete_multi(self, keys, delay=0): self.set_behavior(BEHAVIOR_NOREPLY, 1) self.set_behavior(BEHAVIOR_BUFFER_REQUESTS, 1) for key in keys: if self.check_key(key): c.memcached_delete(self.mc, key, len(key), delay) retval = c.memcached_flush_buffers(self.mc) self.set_behavior(BEHAVIOR_NOREPLY, 0) self.set_behavior(BEHAVIOR_BUFFER_REQUESTS, 0) return retval == MEMCACHED_SUCCESS
def set_multi_raw(self, values, expire): self.set_behavior(BEHAVIOR_NOREPLY, 1) self.set_behavior(BEHAVIOR_BUFFER_REQUESTS, 1) for key, (val, flag) in values.iteritems(): if not self.check_key(key): continue self.set_raw(key, val, expire, flag) retval = c.memcached_flush_buffers(self.mc) self.set_behavior(BEHAVIOR_NOREPLY, 0) self.set_behavior(BEHAVIOR_BUFFER_REQUESTS, 0) return retval == MEMCACHED_SUCCESS
def _store_multi(self, cmd, keys, val): if type(val) != type(''): sys.stderr.write("[cmemcached]%s only support string: %s" % (cmd, key)) return 0 self.set_behavior(BEHAVIOR_NOREPLY, 1) self.set_behavior(BEHAVIOR_BUFFER_REQUESTS, 1) for key in keys: if cmd == 'append': c.memcached_append(self.mc, key, len(key), val, len(val), 0, 0) elif cmd == 'prepend': c.memcached_prepend(self.mc, key, len(key), val, len(val), 0, 0) retval = c.memcached_flush_buffers(self.mc) self.set_behavior(BEHAVIOR_NOREPLY, 0) self.set_behavior(BEHAVIOR_BUFFER_REQUESTS, 0) return retval == MEMCACHED_SUCCESS