My test is:
Create a child thread and it do BRPOPLPUSH for blocking itself to wait for data from redis, and then close the redis client(close the socket InputStream and OutputStream) in main thread, suppose the child thread should return by IOException throwing, but it is still blocked and it never returns until any reponse is received from redis.