302 Caching
A 302
response code would only be cached if accompanied with the Cache-Control
or Expires
headers. There is no explicit or embedded cache information within a 302
response.
According to RFC 2616, section 10.3.3 302 Found
The requested resource resides temporarily under a different URI.
Since the redirection might be altered on occasion, the client SHOULD
continue to use the Request-URI for future requests. This response is
only cacheable if indicated by a Cache-Control or Expires header
field.
Verify 301 Response
I recommend you verify that you are indeed sending the expected 301
HTTP responses. You can use:
curl -I http://www.domain.com/
to see the headers being returned.
Alternatively, you can use http://redbot.org to explore HTTP headers as well.
If you are certain you are sending the correct headers, then Google will see these on its next visit.
Check Logs
You can then check your logs to see if Googlebot has visited the pages with the updated headers. If it has, then it should pick up the 301
response.
Once this is done, the change should be included in the next search engine update.