|
|
@@ -31,38 +31,9 @@ class MClient(memcache.Client): |
|
|
|
|
|
|
|
def set_value(self, key, val): |
|
|
|
self.set(self.n(key), val) |
|
|
|
self.add_to_key_list(key) |
|
|
|
|
|
|
|
def get_value(self, key): |
|
|
|
return self.get(self.n(key)) |
|
|
|
|
|
|
|
def delete_value(self, key): |
|
|
|
self.delete(self.n(key)) |
|
|
|
|
|
|
|
def add_to_key_list(self, key): |
|
|
|
key_list = self.get_value('key_list') or [] |
|
|
|
if key not in key_list: |
|
|
|
key_list.append(key) |
|
|
|
self.set(self.n("key_list"), key_list) |
|
|
|
|
|
|
|
def delete_keys(self, startswith=None): |
|
|
|
"""flush keys from known key_list""" |
|
|
|
if not startswith: |
|
|
|
for key in self.get_value('key_list'): |
|
|
|
self.delete_value(key) |
|
|
|
|
|
|
|
self.delete_value('key_list') |
|
|
|
else: |
|
|
|
deleted = [] |
|
|
|
keys = self.get_value('key_list') or [] |
|
|
|
for key in keys: |
|
|
|
if key.startswith(startswith): |
|
|
|
self.delete(self.n(key)) |
|
|
|
deleted.append(key) |
|
|
|
|
|
|
|
for d in deleted: |
|
|
|
keys.remove(d) |
|
|
|
|
|
|
|
self.set_value("key_list", keys) |
|
|
|
# in any case, delete it explicitly |
|
|
|
self.delete(self.n(startswith)) |
|
|
|
self.delete(self.n(key)) |