我有搜索页面,其中显示结果。 我配置了redis并能够为结果集执行redis片段缓存,并且它正在按预期工作。
对于我的应用程序,取决于用户首选项,搜索结果中的某些元素将针对各个用户进行更改。所以,我现在需要的是为个人用户缓存。 我可以通过以下声明完成此部分。
$redis.set("result_#{current_user.id if current_user}")
我的问题是如何为每个用户删除所有这些缓存,
因为我不知道创建了哪个用户缓存以及我
不要在User
上执行sql查询以获取所有ID's
。
redis-namespace是否对我有帮助,如何删除其下的命名空间和密钥。
这也是针对用户特定的
答案 0 :(得分:0)
您可以让Redis使用LRU算法删除密钥。使用maxmemory
指令配置内存限制,然后将maxmemory-policy
设置为值allkeys-lru
。您可以在redis.io/topics/lru-cache找到有关如何将Redis用作缓存的更多信息。