We're using Redis in our system for interprocess communications. We have implemented durable message queues with lists, and use Lua scripts for all access: push, pop, commit, and rollback. The scripts are primarily used to handle functionality for a message ID (add it during push, parse it during pop, commit up until a certain ID).
We are also using key/value storage with expiration, and pub/sub on one channel.
The client we use is the Lettuce Java client based on Netty. We do not do asychronous calls.
The problem we are seeing, is the Lettuce client gets command time outs. The timeout has been set as high as 10secs, and we still get them.
The slowlog shows the Lua scripts taking anywhere from 10ms to 25ms. There are up to 2000 messages being pushed or popped at a time, by a single push client, and a single pop client per list.
I would appreciate any theories on what would cause the client to time out frequently at 10 seconds.