В каких случаях вы стали бы использовать redis для хранения кеш данных (или не кеш), а в каких storage engine = MEMORY
Лично я - наверное во всех случаях, в которых Redis для этого подходит. От части по тому, что проекты требующие кэширования такого уровня, в основном (*конкретно в моей практике, по факту - это не говорит ни о чём) комплектуются Postgres'ом.
Среди прочих достоинств - редиска умеет сохранять данные да диск, это может быть важно/нужно.
В остальных случаях, главное - без фанатизма это делать. Нет "едноправильного" решения, которое бы дало 100% результат. У Вас определенные требования к задаче, есть инструмент. Если MEMORY_ENGINE работает нормально (т.е. Вас показатели устраивают), и у Вас уже установлен MySQL и он работает - зачем тащить ещё Redis? Это усложнит систему, хоть и не сильно.
Если у Вас нет MySQL, или MEMORY_ENGINE по какой-то причине не устроил, например, Вам нужно сохранять данные на диск или [причина-N] - берём Redis.
Так же, стоит заметить, что функциональность MEMORY_ENGINE немного шире, в виду наличия полноценного SQL-движка, и в целом логически отличается от редиски.
А есть ещё Memcached...
2) есть еще любопытный костыль - InnoDB on RAMdisk , кто что думает по этому поводу?
По моему, решение уровня "так себе". Мне эта идиома не нравится.
Да, и в целом - Redis - это именно кэш-хранилище, со скроком жизни кэша "из коробки" (как пример), MEMORY_ENGINE - это полноценная таблица, со всеми вытекающими из этого фактами. Функционал, как я уже писал выше - немного разный...
P.S. В MySQL я помню, грозились ввести какой-то новый движок, как раз для того, что бы "затмить" все Redis'ы с Memcached'ами вместе, но что-то я не нахожу информации по этому поводу... а ведь точно помню, что читал такое!