Python 在缓存中存储我的应用程序的dict是一个好主意吗';s缓存
当客户发帖子时,我需要删除此请求修改的所有数据 我的memcached密钥是散列的,所以我无法通过前缀找到它。我找到的唯一解决方案是将dict存储在DB或缓存中,我更喜欢在缓存中 你认为以下想法好吗:Python 在缓存中存储我的应用程序的dict是一个好主意吗';s缓存,python,django,caching,memcached,Python,Django,Caching,Memcached,当客户发帖子时,我需要删除此请求修改的所有数据 我的memcached密钥是散列的,所以我无法通过前缀找到它。我找到的唯一解决方案是将dict存储在DB或缓存中,我更喜欢在缓存中 你认为以下想法好吗: 是否存储缓存密钥的dict/列表 要为此函数使用缓存或数据库 这是真正稳定的解决方案,在逻辑和性能方面 也许使用第二个缓存来实现它 谢谢大家 编辑: 我想按如下方式存储dict: { 'subject1': ['key1','key2'], 'subject2': ['key3','k
- 是否存储缓存密钥的dict/列表
- 要为此函数使用缓存或数据库
- 这是真正稳定的解决方案,在逻辑和性能方面
- 也许使用第二个缓存来实现它
{
'subject1': ['key1','key2'],
'subject2': ['key3','key3']
}
如果不了解应用程序的具体情况,很难给出令人满意的答案。考虑到这一点 这是可以接受的解决方案;但是请记住,在这种情况下,您将丢失关键索引 根据您的特定用例,此限制可以接受也可以不接受
一个可能对你更好的方法是聪明地知道如何命名你的钥匙;例如,如果您的应用程序处理书籍,您可以在名称下缓存各种数据,例如
book..author
,book..title
,等等。这样,如果您需要使id为42的书籍的所有数据无效,您可以只生成需要使其无效的所有缓存名称(book.42.作者
,book.42.书名
,等等)然后删除它们。Thk作为您的答案,举个例子:我想存储从模型实例计算的数据。如果模型发生变化,则只清除缓存。如果模型实例和计算数据之间存在一对一的映射,则以类似于我上面的书示例的方式命名密钥可能会满足您的目的:)