关于其他一些SO问题,我正在开发一个网站监控应用程序作为宠物项目,目的是了解有关Node.js + Redis的更多信息.
我计划的是让用户添加网址并将其添加到Redis SET
.每分钟,我都会得到SET结果,执行HTTP Get请求并打印响应.
这似乎工作正常,但是,我有几个问题:
鉴于Redis SET不允许重复键(这将使我无法对同一URL执行请求),如何控制用户何时从其帐户中删除URL但另一个用户具有相同的URL?我可以INCR
在URL密钥中使用值,以便知道有多少用户在其帐户中拥有该URL?
鉴于我每分钟都做一次HTTP请求,并且我想使用Redis来保存结果(响应时间,上/下等),在Redis中保存所有数据的最佳方法是什么(每个URL的请求结果都是分钟)?我应该用一个独特的Redis密钥保存每个响应吗?
为了实时向用户显示结果,查询结果并实时解析结果的最佳方法是什么?
谢谢您的帮助.
我想你应该开始编写原型redis-cli
.另外,我想指出Simon Willison解释redis的这篇非常好的文章.
鉴于Redis SET不允许重复键(这将使我无法对同一URL执行请求),如何控制用户何时从其帐户中删除URL但另一个用户具有相同的URL?我可以在URL密钥中使用INCR值,以便知道有多少用户在其帐户中拥有该URL?
我会使用SADD + INCR.
SADD urls http://www.google.com INCR http://www.google.com
删除http://www.google.com
我只会这样做:
DECR http://www.google.com #Only if DECR http://www.google.com => 0, then you should remove from SET SREM urls http://www.google.com
由于我做一个HTTP请求,每分钟,我想使用Redis的保存结果(响应时间,上升/下降等),什么是(保存所有的数据在Redis的从请求到每个URL结果的最佳方式每分钟)?
我会为每个URL使用一个唯一的密钥,并JSON.stringify(obj)
使用MSET将数据作为json()写回redis .
MSET data:http://www.google.com "{json for google}" data:http://www.yahoo.com "{json for yahoo}"
为了实时向用户显示结果,查询结果并实时解析结果的最佳方法是什么?
我会通过MGET得到结果并解析json(obj = JSON.parse(json-string)
).