当前位置:  开发笔记 > 编程语言 > 正文

使用Redis + Node.js的数据库体系结构

如何解决《使用Redis+Node.js的数据库体系结构》经验,为你挑选了1个好方法。

关于其他一些SO问题,我正在开发一个网站监控应用程序作为宠物项目,目的是了解有关Node.js + Redis的更多信息.

我计划的是让用户添加网址并将其添加到Redis SET.每分钟,我都会得到SET结果,执行HTTP Get请求并打印响应.

这似乎工作正常,但是,我有几个问题:

    鉴于Redis SET不允许重复键(这将使我无法对同一URL执行请求),如何控制用户何时从其帐户中删除URL但另一个用户具有相同的URL?我可以INCR在URL密钥中使用值,以便知道有多少用户在其帐户中拥有该URL?

    鉴于我每分钟都做一次HTTP请求,并且我想使用Redis来保存结果(响应时间,上/下等),在Redis中保存所有数据的最佳方法是什么(每个URL的请求结果都是分钟)?我应该用一个独特的Redis密钥保存每个响应吗?

    为了实时向用户显示结果,查询结果并实时解析结果的最佳方法是什么?

谢谢您的帮助.



1> Alfred..:

我想你应该开始编写原型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)).

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有