Memcache is one of those things where the solution can be absolutely any, and no one ever gives a decent answer, perhaps because it does not exist. So I am not looking for a direct answer, but maybe just something to make me move in the right direction.
For a typical request, here is my info on AppStats:

So, from a general 440 ms request, I spend 342 ms in memcache. And here I decided that memcache should be lightning fast. I have to do something wrong.
Looking at my memcache statistics in my admin console, I have the following:
Hit count: 3848 Miss count: 21382 Hit ratio: 15%
I am not an expert on this, but I'm sure 15% is terrible.
The typical query above is too detailed to explain, but basically I create and place a new object that also updates and places the parent object, which also updates and places any users associated with the parent object.
In all this, I always get the key, never ask. Oh, and I use NDB, so all the main memcache files are processed automatically . Therefore, I never touch memcache on my own in my code.
Any ideas?
Edit: here is a breakdown of my request

So, I have only 2 datastore and 2 puts. The rest is automatically processed by memcache material. Why does he work so hard? Would I be better off manually processing this material?