def save(cls, table, data): key_set = cls.genKSKey(table) for k, v in data.items(): DB.get_set(key_set).add(k) cls(table, k).setAll(v) ver_key_set = cls.genKSKey(table, v['revision']) DB.get_set(ver_key_set).add(k)
def truncate(cls, table): key_set = cls.genKSKey(table) s = set(DB.get_set(key_set)) for k in s: cls(k, table).remove() DB.Redis().delete(key_set) cur_data_version = Version.loadCurDataVersion() for v in xrange(1, cur_data_version + 1): key_set = cls.genKSKey(table, v) DB.Redis().delete(key_set)
def load(cls, table, data_version=None, version=None): ret = [] key_list = [] if data_version is None: key_set = cls.genKSKey(table) key_list = list(DB.get_set(key_set)) else: cur_data_version = Version.loadCurDataVersion() for dv in range(data_version + 1, cur_data_version + 1): key_set = cls.genKSKey(table, dv) key_list.extend(list(DB.get_set(key_set))) data_list = cls(table, key_list).batchGet() for data in data_list: ret.append(data) # if version is None or version >= int(data['version_min']): # ret.append(data) return ret