Solution 1:

/kæʃ/ is the original pronunciation, as from the original French 'cache'.

/keɪʃ/ is widely heard in the IT world and elsewhere.

Both are therefore "correct" in the sense that they will be correctly understood by a wide cross-section of English speakers. I believe there's a preference for /keɪʃ/ in IT circles, but I certainly use both in a highly inconsistent manner. English is wonderful like that!

Edit, lest I forget to confirm what other people have said: /kætʃ/ and /kæʃeɪ/ are entirely different words, "catch" and "cachet" respectively. Using either of those pronunciations to mean "cache" will most likely get you looks of blank incomprehension.

Solution 2:

'Kash' is the correct pronunciation. If you pronounce it 'kash-ey' then you're actually using a different word entirely, cachet.