First, I will answer the question about how I do it . I am using MongoDB. I played around with the ideas you mentioned, but quickly crossed out solutions in memory (Memcached, Redis) for the same reason. My final solution ended up either in a relational database or in noSQL like MongoDB. Honestly, in my project scale, I did not think about reliable performance comparison between types of databases.
" " , "" "" , Mongo. , MySQL, json "-" flask, user = getUserFromMongo, dict Python, user['first_name']. :
(- ... SQL Rails)
MongoDB

, , , Wit.ai context. , , context . , , . , , . , ( ), , , , context.
MongoDB , context, . , {name: yelp-search, stage:ask-for-user-location}, , . , context .
I Github, .