Microsoft interview question

How do you design a distributed key-value store like Redis?