草庐IT

cdp-node

全部标签

node.js - 我应该在单个命令中增加多个键字段吗?

我在redis中创建了如下键。hmsetmykeyfield11field22OK//checkedwithcommandhgetallmykey1)"field1"2)"1"3)"field2"4)"2"结果没问题,工作正常。现在我想在一个命令中增加这两个值,比如hincrbymykeyfield11field21这可能吗? 最佳答案 否-HINCRBY不支持这种类型的使用。如果您的动机是确保两个增量的原子性,请使用MULTI/EXEC或服务器端Lua脚本(请参阅EVAL命令)。以下是如何解决原始问题以确保原子性:MULTIHSE

node.js - 在 Node.js 中执行 REDIS 命令

我正在编写一个Node应用程序。此应用程序与REDIS数据库交互。为此,我使用node_redis.有时,我只想使用一行文本来执行命令。换句话说,我想在不使用包装函数的情况下进行传递。例如,我可能有:setmyKeymyValue我希望能够执行它而不必分解文本并调用client.set('mykey','myValue');有没有办法在Node世界中针对REDIS执行这样的命令?如果是,怎么办?谢谢! 最佳答案 您应该能够使用client.send_command(command_name,args,callback)向redis发

node.js - 'adapter' 中没有方法 'io'(node.js、heroku、RedisCloud、socket.io)

在Heroku上使用RedisCloud和node.js允许(future)扩展到多个dyno。按照以下步骤让Redis工作:https://devcenter.heroku.com/articles/rediscloud#using-redis-from-node-js例如,下面带有注释“Prints'bar'”的行确实​​将“bar”写入控制台。然后按照此添加用于缩放的socket.io-redis:https://github.com/Automattic/socket.io-redis上面应该允许我使用类似下面的东西:io.adapter(redis({host:'localh

node.js - 如何在 Node js 聊天应用程序中存储用户的 session 信息?

我使用nodejs和socketio构建了一个基本的聊天模块。我知道javascript但在Node和套接字领域很新。现在我要将这个聊天模块集成到我们的一个应用程序中,不同组织的员工将能够在其中相互交流。现在,我面临的问题是——无法知道在哪里存储连接用户的session信息。我想做的是,假设有2个组织A和B。当组织“A”的任何员工将连接到Node套接字服务器时,我将为组织A创建一个session变量(可能是一个数组)&将该员工存储在该数组中。组织B也一样。通过这种方式,我想为每个组织创建一种桶结构,相应的员工将在这些桶中。因此,当组织的任何新员工连接到套接字服务器时,我将检查该员工属于

Node.js - 使用 Redis 原子更新进行扩展

我有一个执行以下操作的Node.js应用程序:从Redis获取数据对数据进行预计算将新结果写回Redis这个过程每秒可能发生几次。我现在面临的问题是我希望运行此过程的多个实例,并且由于每个Node在另一个Node获得最后一个值后更新,我显然看到更新的日期已过时。如何使上述过程原子化?我无法将操作添加到Redis中的事务,因为我需要在处理和更新之前获取数据(这会强制提交)。谁能给个建议? 最佳答案 对于问题不够清晰,我们深表歉意。进一步阅读后,我确实可以使用事务,但我一直难以理解的地方是我需要将读取与更新分开,并且只需将更新包装在事务

javascript - 在嵌套 for 循环中获取值 - node.js、javascript、redis、Q 库

我正在尝试从嵌套的for循环中提取值。我的循环从Redis获取值,我想将这些值添加到名为“info”的数组变量中。重要的一点是for循环。app.get('/query',function(req,res){varinfo=[];redisClient.keys("todo:*",function(err,data){if(err)returnconsole.log(err);for(vari=0,len=data.length;i基本上,我希望将变量“goodness”中的值推送到名为“info”的数组变量中。当我执行代码时,信息数组会在这里填满,console.log("Inher

javascript - Node Redis 获取高分的高效方式

在Redis中,我有一个包含100000个用户并且还在不断增长的大型数据集。为了制作排行榜,我扫描了整个数据库,获取每个用户的所有哈希值。然后我一个一个过一遍,得到分数。后来,我在javascript中进行排序和修整。我的问题是,做同样的事情更快的方法是什么?当前查询需要几秒钟。我的直觉是将数据存储在JS中,并且只运行一次查询。getLeaderboards:function(player){varself=this;async.waterfall([function(callback){client.smembers("usr",function(err,replies){varpv

node.js - 如何使用 llen 命令结果插入 rpush 的数据?

我只想使用'llen"someKey"'返回值(列表计数)在一次交易中添加'rpush'值。varcount=llen"keys"rpush"keys"count我如何使用这一笔交易? 最佳答案 您将不得不使用Lua在单个事务中执行这两个命令。该命令将是这样的:eval"locallen=redis.call('llen','someKey');redis.call('rpush','keys',len);"2someKeykeys请注意,最后一个参数是过程中涉及的键数及其列表。如果您有许多Redis实例,这将很有用。

使用 vue-3-socket.io 插件以及node.js实现实时聊天(1)

 这篇文章使用选项式API的写法,以实现群聊和私聊为主客户端自然是对应使用vue3框架,服务端使用node.js配合express、http、socket.io、file等库来实现,具体如下:一、完成客户端部分的配置代码1、下载所需的依赖npminstallvue-3-socket.iosocket.io-client2、做socket客户端配置//引入相关依赖importVueSocketIOfrom"vue-3-socket.io";importSocketIOfrom"socket.io-client";//创建一个Socket连接constsocketio=newVueSocketIO

node.js - Redis Heroku Node.JS 连接被拒绝

我正在观看CodeSchool“SouptoBits”截屏视频,将一个简单的node.js+redis应用程序部署到Heroku,他们在截屏视频中提供的内容对我不起作用。简单地尝试让应用程序使用redistogo连接到redis。这是我正在使用的代码,在错误下方://Redisconnectionvarredis=require('redis');if(process.env.REDISTOGO_URL){//productionvarrtg=require("url").parse(process.env.REDISTOGO_URL);varclient=redis.createCl