Redis缓存 - "服务器关闭连接"错误

时间:2017-02-11 00:58:03

标签: caching redis azure-redis-cache redis-cache

我正在进行一些测试以了解MaxMemory-Reserved& MaxMemory-Policy我们在Redis DB快满时几次遇到“服务器关闭连接”错误。以下是详细信息:

1)使用标准C1(1 GB)层创建Redis缓存,并选择“allkeys-lru”和max-memory-reserved为50 MB

2)使用Redis基准测试工具在Redis数据库中添加密钥以确保Redis DB几乎已满。

3)一旦DB达到~960-980 MB左右,再次运行Benchmark工具添加更多密钥并出现跟随错误。在哪种情况下可能会发生此错误? enter image description here 注意:在我们遇到此错误之前运行info命令时,Connected_Clients值为0。

4)同时在Azure Portal Console上运行info命令,输出为“Error”。 5)此错误持续大约2-3分钟,之后我们能够添加密钥。一旦我们再次运行info命令,我们得到了以下统计信息。在这里,我们看到used_memory和used_memory_rss之间的差异大约为76 MB。你认为上述错误可能是因为这个吗?

  

信息

     

服务器redis_version:3.2.3

redis_mode:独立

os:Windows

arch_bits:64

multiplexing_api:winsock_IOCP

赫兹:10

客户

connected_clients:2

client_longest_output_list:0

client_biggest_input_buf:0

client_total_writes_outstanding:0

client_total_sent_bytes_outstanding:0

blocked_clients:0

内存

used_memory:968991592

used_memory_human:924.10M

used_memory_rss:1049776128

used_memory_rss_human:1001.14M

used_memory_peak:1070912296

used_memory_peak_human:1021.30M

used_memory_lua:37888

maxmemory:11亿

maxmemory_human:1.02G

maxmemory_policy:allkeys-LRU

mem_allocator:jemalloc-3.6.0#

1 个答案:

答案 0 :(得分:1)

很可能您遇到了高度未经身份验证的连接。 Redis-benchmark首先创建所有客户端连接(在您的情况下为-c 400连接),然后对它们进行身份验证。 auth中的延迟会导致来自单个IP的大量未经身份验证的连接,Azure Redis缓存会关闭它们以进行DOS保护。因此,错误“服务器关闭了连接” 您可以尝试here中的redis-benchmark,我已经修改了一旦建立连接就进行身份验证,并且应该解决此问题。