We have been using Redis quite recently as part of our product solution, so we can very well miss something. When I run the command, redis-cli infor | Grep client command I see numbers like this:
connected_clients: 472 client_longest_output_list: 0 client_biggest_input_buf: 0 blocked_clients: 0
On both of our servers. We are using Redis 2.8 using the latest version of StackExchange. Redis Client Library We have two Redis instances configured for master / slave. We load data into Redis through the SSIS package, and the final application is a read-only application. Currently, we only experience this in our DEV environment, because until we can stabilize the master / slave configuration, we will only run one instance of Redis in our QA and production environment.
Return to the DEV environment. For some time, the client threw errors indicating that the operation "No" could be performed due to connection problems, so we thought that the growing number of old connections had something to do with this problem. We set the server-side timeout setting to one hour and noticed a significant improvement when clearing client connections on servers. It seems like it helped for a while, but this morning I again see old connections around which I don't think.
I have not seen any errors yet, but I guess I have to worry about hundreds of older connections sitting around. The following is an example of some client connections:
id = 59096 addr = 192.168.60.1: 57530 fd = 668 name = RCTFSBUILD1 age = 505900 idle = 502315 flags = N db = 0 sub = 1 psub = 0 multi = -1 qbuf = 0 qbuf-free = 0 obl = 0 oll = 0 omem = 0 events = r cmd = unsubscribe id = 59861 addr = 192.168.60.1: 58363 fd = 1434 name = RCTFSBUILD1 age = 505833 idle = 502253 flags = N db = 0 sub = 1 psub = 0 multi = -1 qbuf = 0 qbuf-free = 0 obl = 0 oll = 0 omem = 0 events = r cmd = unsubscribe
Obviously, these connections are associated with the pub / subchannel, and the client listens for notifications, I suppose. Why are these compounds not cleaned? If you also notice, these connections come from our build server, where we often do acceptance tests. Not every time the connections are closed, but I would "guess" that as soon as the client process completes, in any way, the connections will be cleared.
Just find some tips, areas to explore, wondering if I need to worry, is this expected, etc.
Hope this is enough information for others to understand the problem.
Thanks!