0

我使用磁盘缓存来保存我的数据。我保存用户cache.add(key=k, value=v, tag="users"),现在我想获取所有用户tag,但是没有这样的方法。

我怎么能这样做?

我发现只有一种方法可以做到这一点:

def _get_all(self):
    r = []
    for k in list(self._cache.iterkeys()):
        r.append(self._cache.get(key=k))

但是这种方式不假设标签作为参数,所以我不能在 1 个磁盘缓存实例中保留不同的项目并按标签过滤它们。

4

1 回答 1

1

查看python-diskcache的源代码,标签的唯一目的是用于SQLite 索引,该索引旨在基于标签值启用快速缓存驱逐/剔除。

唯一使用过的 SQL 语句tag是在.evict()方法中。

没有官方 API 可以通过标签获取缓存条目,并且该库也不是为此而设计的。数据库的整个底层设置和项目检索机制都是以密钥为中心的。

于 2020-02-04T16:54:20.367 回答