javascript - 最快的手指优先应用程序架构 - Redis?

标签 javascript node.js redis database-performance node-redis

我正在使用智能手机作为蜂鸣器编写一个“最快手指优先”的 Node.JS 应用程序。我打算使用 Socket.IO 来处理进入应用程序的答案,但不知道在回合结束时存储数据以进行比较的最佳方式是什么。

我最初的想法是将每个传入套接字事件的应答数据插入到 Redis 中,因为它是基于 RAM 的,我的假设是它会很快。但是,将每个答案按顺序插入数组会更好吗?这会在传入套接字事件期间持续存在吗?

希望这听起来很简洁!

最佳答案

你说得对,数组会更快。这取决于您计划支持多少用户以及您计划如何扩展。如果您正在尝试提供任何人都可以创建“游戏”的“服务”,并且您计划在您的平台上支持数十万个“游戏”,请选择 Redis,因为您可能需要扩展您的 Web 层并在一个网络服务器不会出现在另一个网络服务器上。

但是,如果您将此作为一次性的事情来做,一次支持一个游戏,甚至可能来自通过 wifi 连接到您的笔记本电脑的 friend (尽管互联网上的小型 Heroku 服务器也可以正常工作)然后我会选择一个数组。与外部数据库(甚至与 Redis 一样快的数据库)通信会增加复杂性。 Node.js 是事件和单线程的,这意味着您不必担心竞争条件。你可以写

var firstPresser;
socket.on('press', function (presser) {
    if (!firstPresser) {
        firstPresser = presser;
        // return "You pressed first"
    } else {
        // return "You didn't press first"
    }
});

请原谅我的伪代码,我对 socket.io 并不特别熟悉,但我想你明白了。

关于javascript - 最快的手指优先应用程序架构 - Redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370526/

相关文章:

javascript - 在js文件中为网站添加背景图片

javascript - 在 jQuery UI 和 jQuery Mobile 之间切换的最佳方式是什么

node.js - 无法创建新的 Angular 项目

json - Mongoose:通过 POST JSON 更新项目

security - 向 Internet 公开发布/订阅消息队列

python - 如何从哨兵 url 创建 redis python 客户端?

javascript - 如何使用 Javascript 遍历 ul 列表?

javascript - 从父窗口获取 iframe 中文本框的值

javascript - 使用 fs.readFileSync 和 eval 内容读取文件...哪个范围具有这些功能?如何访问?

Redis唯一增量