Redis连接花费时间执行" mget"和" setex" node,js&中的命令socket.io

时间:2017-05-11 11:46:33

标签: javascript node.js sockets redis socket.io

我在node.js遇到redis问题。我使用 socket.io redis (没有pub-sub模型,即单连接)。我的redis操作需要花费大量时间来执行。每当我的套接字连接数增加时,redis命令的时间会呈指数级增长。有时它会超过10秒。 我正在努力解决这个问题,并且对node.js来说是新手。

我怎么知道Redis需要时间。我在调用之前和调用redis library(microbenchmark) set.seed(1) cp <- t(replicate(1e+6, sample(9))) B <- t(replicate(9, sample(9)-1)) f989=function() apply(mapply(seq, seq(ncol(cp)-1), 2:ncol(cp)), 2, function(i) B[cp[,i]]) fikop=function() sapply(1:(ncol(cp) - 1), function(ii){ B[cp[,ii] + nrow(B) * (cp[,ii+1] - 1)] }) all(f989()==fikop()) # [1] TRUE microbenchmark(f989(), fikop()) # Unit: milliseconds # expr min lq mean median uq max neval # f989() 157.4025 165.0029 190.5306 200.8816 204.6907 239.720 100 # fikop() 212.2289 255.1914 259.2568 261.1330 266.3382 310.974 100 方法之后应用了控制台日志。

P.S。 :我们使用python脚本运行相同的测试,结果是可以接受的。我不知道为什么node.js会出现这个问题。

已经尝试过:https://redislabs.com/blog/redis-running-slowly-heres-what-you-can-do-about-it/

任何帮助都是值得赞赏的人!

更新 - 添加了代码段。我正在尝试使用socket.io创建一个基本的测验应用程序。该流程是从数据库中获取所有问题并将其缓存在Redis中。然后在整个问题集中,我随机挑选了5个问题并在Redis中设置。

setex

0 个答案:

没有答案