Python 如何清除缓存的查询?

Python 如何清除缓存的查询?,python,python-2.7,web2py,pydal,Python,Python 2.7,Web2py,Pydal,我使用以下方法缓存SQL查询的结果: db(my_query).select(cache=(cache.ram, 3600), cacheable=True) 在某些情况下,我希望在缓存过期之前清除它,这可以通过使用cache.ram.clear(key)来完成,但实际上我不知道在前面的代码中DAL生成的密钥 我知道cache=(cache.ram,0)也会清除缓存,但我也有执行查询的开销 如何实现这一点?缓存密钥的复制有点复杂(它是数据库URI的MD5哈希加上为查询生成的SQL)。另外,由于

我使用以下方法缓存SQL查询的结果:

db(my_query).select(cache=(cache.ram, 3600), cacheable=True)
在某些情况下,我希望在缓存过期之前清除它,这可以通过使用
cache.ram.clear(key)
来完成,但实际上我不知道在前面的代码中DAL生成的密钥

我知道
cache=(cache.ram,0)
也会清除缓存,但我也有执行查询的开销


如何实现这一点?

缓存密钥的复制有点复杂(它是数据库URI的MD5哈希加上为查询生成的SQL)。另外,由于您有
cacheable=True
,因此您可以使用自己的键直接调用
cache.ram

rows = cache.ram('my_query', lambda: db(my_query).select(cacheable=True), 3600)