通过C#redis客户端缓慢连接到redis!

时间:2011-07-21 10:20:47

标签: c# redis tcp-ip

我可以知道C#redis的基准是什么? 我尝试使用456字节数据通过Tcp / ip连接到redis。 基准如下:

hset - 600次写入/秒,循环10000次        600读/秒,循环10000次

这是正常的吗? 我怀疑是tcp / ip传输速率慢,因为传输速率慢156 kbps。 我设置了TCP接收窗口大小,但速度仍然相同。 我也试过通过tcp / ip使用ubuntu基准redis。传输速率最高可达3 mbps。 hset - >每秒10k。

1 个答案:

答案 0 :(得分:2)

问题很可能是延迟 - 而redis每秒可以处理数千次操作,单个同步连接将花费大部分时间等待网络。你的测试循环实际上是这样的:

Client                Network       Server 
send GET     
                      1ms         
                                    Process GET (0.01 ms)
                      1ms
Result received 

因此,操作总时间为2.01毫秒,但客户端和服务器几乎都处于空闲状态。这意味着您可以充分利用并行性 - 将您的循环分成100个线程,这样就不会在网络上等待,并且您可以在相同的2ms内获得100个结果。

ubuntu的不同之处可能在于您在与redis相同的服务器上运行它 - 即使您使用的是IP而不是unix套接字,localhost的延迟也远低于不同服务器之间的任何连接。