首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis性能问题?

Redis性能问题?
EN

Stack Overflow用户
提问于 2011-04-19 07:08:28
回答 3查看 2.6K关注 0票数 6

我试着在我的Redis上加载一些重载,以便测试并找出任何上限。首先,我加载了大小为32个字符的50,000和100,000个键,值大约为32个字符。两种密钥大小都不超过8-15秒。现在,我尝试将4kb的数据作为每个键的值。前10000个密钥需要800毫秒才能设置。但从这一点开始,它逐渐变慢,设置整个50,000个关键点大约需要40分钟。我正在使用NodeJs和node_redis (Mranney)加载数据库。是我做错了什么,还是Redis在处理4KB的大值时有那么慢?

我现在发现的另一件事是,当我运行与当前客户端并行的另一个客户端并更新密钥时,第二个客户端在8秒内完成了50000个具有4kb值的密钥的加载,而第一个客户端仍然永远在做它的事情。是node中的bug还是redis库中的bug?这是令人担忧的,对于生产来说是不可接受的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-25 17:51:36

在从节点向Redis进行批量写入时,您需要获得某种反压力。默认情况下,节点将对所有写入进行排队,并且不会强制设置传出队列大小的上限。

node_redis有一个“排出”事件,你可以通过监听来实现一些基本的背压。

票数 5
EN

Stack Overflow用户

发布于 2011-04-19 08:56:57

默认的redis配置没有针对这种用法进行优化。我怀疑您让它以32字节的页面大小交换到磁盘,这意味着添加的每个键都必须找到128个连续的空闲页面,并可能最终使用系统VM或需要大量扩展交换文件。

当您更新密钥时,空间已经分配,因此您不会看到任何性能问题。

票数 3
EN

Stack Overflow用户

发布于 2011-04-21 06:03:24

因为我在NodeJs中做了大量的设置(键值),这是异步完成的,所以很多套接字连接是并发打开的。NodeJs套接字写入缓冲区可能过载,GC可能会扰乱节点进程。

PS:我按照Tom的建议更改了redis的内存配置,但它的性能仍然没有改变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5709866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档