问题标签 [node-redis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Windows 上的 node.js 和 redis (hiredis)
我在使用 node.js 和 redis 但没有hiredis的聊天应用程序上使用该代码,因为我无法在Windows机器上安装它
但是 parseInt 方法也不起作用,remove-user 事件也不起作用..您对此有任何解释和解决方案吗?
javascript - 最快的手指优先应用程序架构 - Redis?
我正在使用智能手机作为蜂鸣器编写“最快的手指优先”Node.JS 应用程序。我打算使用 Socket.IO 来处理进入应用程序的答案,但不知道在回合结束时存储数据以进行比较的最佳方式是什么。
我最初的想法是将每个传入套接字事件的答案数据插入到 Redis 中,因为它是基于 RAM 的,我的假设是它会很快。但是,将每个答案依次推送到数组中会更好吗?这会在传入的套接字事件期间持续存在吗?
希望听起来简洁!
node.js - 带有 socket.io 和 redis 存储的 Nodejs express 应用程序 - 为什么有超过 1 个到 Redis 的连接
我有一个使用 Redis 进行会话存储的 express 应用程序(特别是 express.io - 一个结合 express 和 socket.io 以方便使用的存储库)。
在我的开发机器上,当我启动我的应用程序时,它似乎与 Redis 建立了多个 (7) 连接。为什么是这样?
更新:这是我从 redis-cli MONITOR 看到的输出
javascript - 一个客户端的 Redis WATCH MULTI EXEC
我在 RedisOnGo + node_redis 上使用 NodeJS + Express + Redis 作为客户端。我希望有很多并发,所以尝试测试 WATCH。这个例子不包含 Express,只包含必要的东西。
预期结果:在 exec 回调中出现 N 个错误,最后得到“inc”变量 = 10-N。
意外结果:在 exec 回调中出现 0 个错误,但最终得到“inc”变量 = 1。
Watch 不适用于我的代码。
我发现这个线程redis 和 watch + multi 允许并发用户。他们说这是因为唯一的redis客户端。
然后我发现这个线程我应该为每个连接创建一个新的Redis客户端吗?. 他们说“绝对不推荐”为每笔交易生成一个新客户。我搞不清楚了。
另请注意,我必须对 Redis 服务器进行身份验证。提前致谢!
第 1 版:
通过在每次 WATCH-MULTI-EXEC 迭代之前创建一个新的客户端连接,我能够使用本地 Redis 实例(因此我不使用 client.auth)使其工作。虽然不确定它是否好,但现在结果是 100% 准确的。
版本2 如果我在每次 WATCH-MULTI-EXEC 迭代之前创建一个新的客户端连接,然后执行 client.auth 并等待 client.on,它就可以工作。
问题仍然存在,我可以为每次迭代创建新的客户端连接吗?
redis - 仅当尚未设置时才设置原子
有没有办法只在 Redis 中尚未设置时才进行原子集?
具体来说,我正在创建一个像“myapp:user:user_email”这样的用户,如果“user_email”已经被占用,我希望 Redis 给我一个错误,而不是默默地替换旧值。像声明,而不是替换。
node.js - 如何从redis存储客户端的键/值对中的值中获取键?
我将用户名/SocketID 对存储在我的 socket.io 聊天应用程序的 redis 存储中。
当用户断开连接时,我需要从 redis 存储中删除用户名/socketID 对。我已经看到了如何从键中获取值,但从来没有从值中获取键。是否可以?或者无论哪种方式,我如何才能从值中删除键/值对。这是我的代码
用于在连接时添加到存储
对于断开连接,客户端不知道何时会发生断开连接,这可能是由于失去互联网连接而发生的,但是当套接字断开连接时,它总是会触发“断开连接”事件。在这种情况下,我需要删除用户名/socketID 对。
node.js - 如何(重新)在 nodejs/express 中使用 redis 客户端连接?
举一个简单的例子:
不需要为每个请求重新建立 Redis 连接,是吗?
需要使用redis连接池吗?
heroku - socket.io RedisStore 可以在 heroku 上运行吗?
我似乎无法让 socket.io RedisStore 在 heroku 上工作。我能够连接到 RedisToGo,但是当我打电话时new RedisStore()
,如果我没有提供 RedisToGo 连接的密码,我会收到错误,例如:Error: Ready check failed: ERR operation not permitted
我的配置:
Heroku 的错误日志:
2013-04-30T19:38:30.070457+00:00 heroku[web.1]: Starting process with command 'node app.js'
2013-04-30T19:38:30.917568+00:00 app[web.1]: info: socket.io started
2013-04-30T19:38:31.002714+00:00 app[web.1]: client ERR: null
2013-04-30T19:38:31.009598+00:00 app[web.1]:
2013-04-30T19:38:31.010050+00:00 app[web.1]: /app/node_modules/socket.io/node_modules/redis/index.js:506
2013-04-30T19:38:31.003255+00:00 app[web.1]: pub ERR: null
2013-04-30T19:38:31.001801+00:00 app[web.1]: sub ERR: null
2013-04-30T19:38:31.010729+00:00 app[web.1]: throw callback_err;
2013-04-30T19:38:31.011043+00:00 app[web.1]: ^
2013-04-30T19:38:31.015164+00:00 app[web.1]: at Command.callback (/app/node_modules/socket.io/node_modules/redis/index.js:367:14)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at RedisClient.return_error (/app/node_modules/socket.io/node_modules/redis/index.js:502:25)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at RedisClient.on_info_cmd (/app/node_modules/socket.io/node_modules/redis/index.js:319:35)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at RedisReplyParser.send_error (/app/node_modules/socket.io/node_modules/redis/lib/parser/javascript.js:266:14)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at Socket.<anonymous> (/app/node_modules/socket.io/node_modules/redis/index.js:79:14)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at RedisClient.on_data (/app/node_modules/socket.io/node_modules/redis/index.js:478:27)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at RedisReplyParser.execute (/app/node_modules/socket.io/node_modules/redis/lib/parser/javascript.js:125:22)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at RedisReplyParser.<anonymous> (/app/node_modules/socket.io/node_modules/redis/index.js:262:14)
2013-04-30T19:38:31.015164+00:00 app[web.1]: Error: Ready check failed: ERR operation not permitted
2013-04-30T19:38:31.015476+00:00 app[web.1]: at Socket.EventEmitter.emit (events.js:95:17)
2013-04-30T19:38:31.015164+00:00 app[web.1]: at RedisReplyParser.EventEmitter.emit (events.js:95:17)
2013-04-30T19:38:32.242663+00:00 heroku[web.1]: Process exited with status 8
2013-04-30T19:38:32.257231+00:00 heroku[web.1]: State changed from starting to crashed
node.js - Node Redis:如何过滤一组排序的键并在一次调用中检索每个键的哈希值
我正在使用node_redis在 node.js 中使用 redis 数据库。这是一个类似于我正在使用的结构的快速示例。
现在假设我想获取组中 18 岁以上用户的所有用户数据:1
我知道我可以通过调用来获取用户密钥
我迷路的地方是如何一次获取所有用户对象?更进一步,是否可以一次调用 zrangebyscore 并获取所有用户对象?
javascript - 从redis获取密钥列表?
我有部分具有相同约定的较大哈希集:
导致...的console.log
我不明白发生了什么,任何帮助表示赞赏。