Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在缓存中存储我的应用程序的dict是一个好主意吗';s缓存_Python_Django_Caching_Memcached - Fatal编程技术网

Python 在缓存中存储我的应用程序的dict是一个好主意吗';s缓存

Python 在缓存中存储我的应用程序的dict是一个好主意吗';s缓存,python,django,caching,memcached,Python,Django,Caching,Memcached,当客户发帖子时,我需要删除此请求修改的所有数据 我的memcached密钥是散列的,所以我无法通过前缀找到它。我找到的唯一解决方案是将dict存储在DB或缓存中,我更喜欢在缓存中 你认为以下想法好吗: 是否存储缓存密钥的dict/列表 要为此函数使用缓存或数据库 这是真正稳定的解决方案,在逻辑和性能方面 也许使用第二个缓存来实现它 谢谢大家 编辑: 我想按如下方式存储dict: { 'subject1': ['key1','key2'], 'subject2': ['key3','k

当客户发帖子时,我需要删除此请求修改的所有数据

我的memcached密钥是散列的,所以我无法通过前缀找到它。我找到的唯一解决方案是将dict存储在DB或缓存中,我更喜欢在缓存中

你认为以下想法好吗:

  • 是否存储缓存密钥的dict/列表
  • 要为此函数使用缓存或数据库
  • 这是真正稳定的解决方案,在逻辑和性能方面
  • 也许使用第二个缓存来实现它
谢谢大家

编辑:

我想按如下方式存储dict:

{
  'subject1': ['key1','key2'],
  'subject2': ['key3','key3']
}

如果不了解应用程序的具体情况,很难给出令人满意的答案。考虑到这一点

这是可以接受的解决方案;但是请记住,在这种情况下,您将丢失关键索引

根据您的特定用例,此限制可以接受也可以不接受


一个可能对你更好的方法是聪明地知道如何命名你的钥匙;例如,如果您的应用程序处理书籍,您可以在名称下缓存各种数据,例如
book..author
book..title
,等等。这样,如果您需要使id为42的书籍的所有数据无效,您可以只生成需要使其无效的所有缓存名称(
book.42.作者
book.42.书名
,等等)然后删除它们。

Thk作为您的答案,举个例子:我想存储从模型实例计算的数据。如果模型发生变化,则只清除缓存。如果模型实例和计算数据之间存在一对一的映射,则以类似于我上面的书示例的方式命名密钥可能会满足您的目的:)