Ответ 1
Они похожи друг на друга в первую очередь в памяти, но об этом.
Redis - это база данных с ключом в памяти. Он сохраняет данные на диске, но также сохраняет весь набор данных в памяти, поэтому для этого вам нужно достаточно оперативной памяти. Архитектура ключевого значения позволяет использовать множество разных типов данных, поэтому вы можете хранить значение как простую строку или списки, наборы, хэши и т.д. В основном все структуры данных, которые вы можете использовать внутри языка программирования, доступны в Redis изначально.
SQL Server Hekaton (встроенная память OLTP) - это новый движок, предназначенный для запуска реляционных таблиц в памяти. Подобно Redis, все данные для этих таблиц хранятся в ОЗУ, но также сохраняются на диске, поэтому они полностью прочны.
Hekaton может принимать отдельные таблицы в базе данных SQL Server и запускать их в другом процессе с использованием MVCC (вместо страниц и блокировок) и других оптимизаций для памяти, поэтому операции в тысячи раз быстрее, чем традиционный механизм на основе дисков. В нем много исследований, и основной случай использования - это взять таблицу, которая находится под большой нагрузкой, и переключить ее на работу в памяти, чтобы повысить производительность и масштабируемость.
Hekaton не предназначался для работы всей базы данных в памяти (хотя вы можете это сделать, если хотите), а скорее как новый движок, предназначенный для обработки конкретных случаев, сохраняя при этом интерфейс одинаковым. Все для конечного пользователя идентично остальной части SQL Server: вы можете использовать SQL, хранимые процедуры, триггеры, индексы, атомарные операции с ACID-свойствами, и вы можете легко работать с данными как в обычных, так и в таблицах памяти.
Из-за потенциала производительности Hekaton вы можете использовать его для замены Redis, если вам нужна скорость, и хотите моделировать ваши данные в традиционных реляционных таблицах. Если вам понадобятся другие функции "ключ-значение" и структура данных Redis, вам лучше остаться с этим.
С SQL1 2016 SP1 все уровни SQL Server теперь имеют доступ к тем же функциям, и единственное различие заключается в оценке стоимости поддержки и емкости.