Ruby on rails Redis组织动态键并立即删除它们

Ruby on rails Redis组织动态键并立即删除它们,ruby-on-rails,caching,redis,Ruby On Rails,Caching,Redis,我有一个显示结果的搜索页面。 我配置了redis,能够对结果集进行redis片段缓存,它可以按预期工作 对于我的应用程序,根据用户偏好,搜索结果中的某些元素将针对单个用户进行更改。所以,我现在需要的是为单个用户缓存。 通过下面的陈述,我也能做到这一点 $redis.set("result_#{current_user.id if current_user}") 我的问题是如何删除每个用户的所有缓存, 因为我不知道为哪个用户缓存创建,我也不知道 不要在用户上执行sql查询以获取所有ID red

我有一个显示结果的搜索页面。 我配置了redis,能够对结果集进行redis片段缓存,它可以按预期工作

对于我的应用程序,根据用户偏好,搜索结果中的某些元素将针对单个用户进行更改。所以,我现在需要的是为单个用户缓存。 通过下面的陈述,我也能做到这一点

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

  • redis名称空间在这方面是否有帮助,以及如何删除名称空间及其下的键

  • 这也是为特定于用户的应用程序提供缓存的最佳实践吗

  • redis是否在每次部署时清除。我是说redis缓存什么时候会被清除

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

您是否仅将Redis用作缓存?如果是这种情况,您可能希望将其配置为通过删除最近使用最少的密钥来释放内存。如果你喜欢这个主意,我可以告诉你更多。其他选项包括跟踪您创建的关键点。使用redis命名空间对您没有帮助。@soveran我使用redis只是为了缓存。如果您能告诉我如何通过删除最少使用的密钥和跟踪密钥来释放内存,我将不胜感激。我喜欢听关于redis缓存的任何事情。我只是回答,如果你需要帮助,请点击我。