缓存数据库问题

时间:2011-01-15 23:31:09

标签: caching memcached redis

  • 当我们说像使用memcahe或Redis这样的缓存时,这是用户和缓存之间的1:1缓存还是我们可以缓存1个项目并将其用于所有用户?像朋友列表这样的项目将是1:1,每个用户都是唯一的。但是,如果我想缓存任何用户可以使用的城市查找的自动完成列表,它是否只将1个列表存储在所有用户同时使用的缓存中,还是需要为每个用户存储1个列表?

  • 是否可以缓存整个 数据库,所有查找,所有 用户,他们所有的照片等使用 memache或redis?

  • 所以从上面的例子:朋友 列表将从缓存中清除 当用户注销时但有些事情 像城市汽车完整将留在 缓存24-7-365,我是对的吗?

1 个答案:

答案 0 :(得分:1)

它可以是 - 如果您的缓存键包含一个用户ID,该记录将用于单个用户。

如果需要,您可以缓存所有内容,但显然需要相当多的内存,如果您这样做,可能值得使用redis或memcachedb作为主数据存储而不是缓存。您可能希望对照片执行不同的操作 - 您可以将它们存储为blob,但将它们存储在文件系统中并在数据库中保留路径/ URL可能更有效。

缓存通常独立于用户会话 - 而是您拥有每个密钥的设置到期时间,自上次访问密钥以来的跟踪时间,或者写入时到期。