upstream only provide a list of servers, and some kind of weight. To tell Nginx what to do if one of the servers fail, you need to control this with memcached_next_upstream.
From the Nginx-documentation:
syntax: memcached_next_upstream [ error | timeout | invalid_response | not_found | off ]
default: error timeout
context: http, server, location
Which failure conditions should cause the request to be forwarded to another upstream server? Applies only when the value in memcached_pass is an upstream with two or more servers.
As stated in the documentation, the default behaviour is error / timeout, which should be sufficient in most cases.