如何通过标签获取所有元素?

How to get all elements by tag?

我使用 diskcache 来保存我的数据。我保存用户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 个磁盘缓存实例中保留不同的项目并按标签过滤它们。

根据标签值查看python-diskcache, the sole purpose of the tag is be used in an SQLite index which is meant to enable fast cache eviction/culling的源码

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

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