【问题标题】:Redis organize dynamic keys and delete them at onceRedis 组织动态键,一次性删除
【发布时间】:2015-06-03 05:24:42
【问题描述】:

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

对于我的应用程序,取决于用户偏好,搜索结果中的某些元素将针对个别用户进行更改。所以,我现在需要的是为单个用户缓存。 我也可以用下面的语句来做这部分。

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

  • redis-namespace 对此有帮助吗?如何删除命名空间及其下的键。

  • 这也是为特定用户提供缓存的最佳实践

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

【问题讨论】:

  • 您是否仅将 Redis 用作缓存?如果是这种情况,您可能需要将其配置为通过删除最近最少使用的键来释放内存。如果你喜欢这个想法,我可以告诉你更多关于它的信息。其他选项包括跟踪您创建的密钥。使用 redis-namespace 对你没有帮助。
  • @soveran 我仅将 redis 用于缓存目的。如果您能告诉我有关通过删除最少使用的密钥和跟踪密钥来释放内存的信息,我将不胜感激。我喜欢听到有关 redis 缓存的任何信息。
  • 我刚刚回复了,如果您需要任何帮助,请联系我。

标签: ruby-on-rails caching redis


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-26
    • 2022-01-12
    • 1970-01-01
    • 2015-02-01
    • 2018-03-10
    • 2014-01-30
    • 2021-11-11
    • 2020-10-13
    相关资源
    最近更新 更多