Redis组织动态密钥并立即删除它们

时间:2015-03-30 08:59:02

标签: ruby-on-rails caching redis

我有搜索页面,其中显示结果。 我配置了redis并能够为结果集执行redis片段缓存,并且它正在按预期工作。

对于我的应用程序,取决于用户首选项,搜索结果中的某些元素将针对各个用户进行更改。所以,我现在需要的是为个人用户缓存。 我可以通过以下声明完成此部分。

$redis.set("result_#{current_user.id if current_user}")
  • 我的问题是如何为每个用户删除所有这些缓存, 因为我不知道创建了哪个用户缓存以及我 不要在User上执行sql查询以获取所有ID's

  • redis-namespace是否对我有帮助,如何删除其下的命名空间和密钥。

  • 这也是针对用户特定的

  • 进行缓存的最佳做法
  • 每次部署都会清除redis。我的意思是什么时候redis缓存会被清除。

1 个答案:

答案 0 :(得分:0)

您可以让Redis使用LRU算法删除密钥。使用maxmemory指令配置内存限制,然后将maxmemory-policy设置为值allkeys-lru。您可以在redis.io/topics/lru-cache找到有关如何将Redis用作缓存的更多信息。