在缓存中存储我的应用缓存的字典是一个好主意

时间:2013-09-14 14:49:48

标签: python django caching memcached

当客户端发布POST时,我需要删除此请求修改的所有数据。

我的memcached密钥是哈希的,所以我无法通过前缀找到它。我找到的唯一解决方案是将数据库存储在数据库或缓存中,我更喜欢缓存。

你认为以下想法是好的:

  • 存储缓存键的dict /列表?
  • 要为此功能使用缓存还是数据库?
  • 这是一个非常稳定的解决方案,逻辑和性能?
  • 也许使用第二个缓存来制作它?

感谢所有人。

修改

我想将dict存储如下:

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

1 个答案:

答案 0 :(得分:1)

如果不知道申请的具体情况,很难给出满意的答案。考虑到这一点......

这可以是一个可接受的解决方案;但请记住objects can be evicted from memcached before their expiry date,在这种情况下,您将丢失密钥索引。

根据您的具体使用情况,此限制是否可以接受。

可能更好地为您服务的方法是聪明地将您的名字命名为钥匙;例如,如果您的应用程序处理图书,您可以使用book.<id>.authorbook.<id>.title等名称缓存各种数据。这样,如果您需要使ID为42的图书的所有数据无效,您可以生成无效所需的所有缓存名称(book.42.authorbook.42.title等)并删除它们。