【发布时间】:2019-03-21 08:54:45
【问题描述】:
我需要在这个场景中设计一个 node.js 应用:
- 用户使用具有唯一
tokencookie 的 /page 请求 - Node.js 在 redis(?) 上使用此令牌创建一个
record,TTL 为 5 分钟。tokens 有n类型。所以 redis(?) 应该存储带有类型的令牌。 - 如果用户在
record过期之前再次返回,record的 TTL 将再次重置为 5 分钟。 - 如果用户没有再次返回并且
record过期,则触发函数。 - 最后,我还需要
records 的计数属于特定类型(即类型 27)。
解决此问题的最佳方法是什么? redis 是正确的选择吗?如果我使用redis,如何计算tokens 并触发5. step?
使用https://github.com/Automattic/kue 或类似的东西会是不错的选择吗?
编辑: 似乎可能与Event on key expire 重复 .总的来说,请问,redis适合这个问题吗?如果您认为是,请您举一个我应该遵循的示例模式。如果没有,即使没有 redis 或 3rd 方工具,还有什么其他解决方案。
正如我在上面列表中的 5. 项中所说,redis 似乎不适合使用如下所述的模式查询keys:https://redis.io/commands/keys
.因为似乎没有办法对集合 (TTL for a set member) 的单个成员设置过期时间,所以我不能将令牌放入 type 集合或散列中。因此,我需要查询键以获取组的计数 (type),这似乎不像上面链接中描述的那样有效。
即使https://redis.io/topics/notifications 解决了上面列表中第 4 项的问题,我也会询问“我应该使用哪种模式/算法以及如何使用”。我不想让你为我编码,但只需要一个火花。教程、指南、视频等会很棒。谢谢!
【问题讨论】:
-
到目前为止你尝试了什么?
-
我刚刚创建了 redis 字符串,但我看到我不知道如何“在密钥过期时触发函数”以及获取类型为 27 的记录(密钥)的计数,使用redis似乎也效率不高。我刚刚找到这个链接:redis.io/commands/keysquickleft.com/blog/how-to-create-and-expire-list-items-in-redisstackoverflow.com/questions/33166812/…
-
因为除了redis key 过期时得到通知之外真的没有别的了。 Event on key expire 的可能重复项
标签: node.js redis jobs job-scheduling