2

我在ec2介质实例上运行redis2.4.16,持久化是标准ebs,我检查了redis日志,发现每隔几个小时就会出现一些日志报告“从客户端读取:连接重置”,我所有的客户端和服务器都在同区:ap-northeast-1a,操作系统为ubuntu server 12.04。客户端是jredis + spring data redis 1.0.0.M4,有大神能解决下或者给点建议,谢谢!下面是 redis info 命令结果:

redis_version:2.4.16
redis_git_sha1:00000000
redis_git_dirty:0
arch_bits:64
multiplexing_api:epoll
gcc_version:4.5.2
process_id:3265
uptime_in_seconds:2658600
uptime_in_days:30
lru_clock:561139
used_cpu_sys:29421.34
used_cpu_user:10731.37
used_cpu_sys_children:20022.24
used_cpu_user_children:75702.79
connected_clients:44
connected_slaves:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
used_memory:1111572800
used_memory_human:1.04G
used_memory_rss:1133101056
used_memory_peak:1112071512
used_memory_peak_human:1.04G
mem_fragmentation_ratio:1.02
mem_allocator:jemalloc-3.0.0
loading:0
aof_enabled:0
changes_since_last_save:1343
bgsave_in_progress:0
last_save_time:1368760178
bgrewriteaof_in_progress:0
total_connections_received:904643
total_commands_processed:592333133
expired_keys:0
evicted_keys:0
keyspace_hits:443393839
keyspace_misses:30383206
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:359082
vm_enabled:0
role:master
slave0:xxx,online
db0:keys=364558,expires=0
4

1 回答 1

1

从日志中可以看出,redis 尝试与已关闭其连接的客户端进行通信。

那可能是因为您的某些客户端在完成与 redis 的连接后没有关闭它。

这最终会导致 redis 连接不足(取决于您的连接限制和您拥有的流量)

一个简单的解决方案是在 redis.conf 中设置连接超时(默认为 0 为“无超时”),以便 redis 在 X 秒后关闭打开的连接。

config get *注意:当你问这类问题时,你应该包括 redis 的输出;)

于 2013-05-17T12:24:45.793 回答