Очень сильно зависит от конкретного варианта использования.Если вы хотите, чтобы ваши документы могли запрашивать что-то, кроме их идентификатора, вам не следует выбирать Redis.С Redis вам придется реализовать собственную схему индексации, а это просто не нужно.
На самом деле очень мало случаев, когда Redis был бы лучшим вариантом для того, что я считаю вашим вариантом использования (не то, что с Redis что-то не так, я часто использую и Redis, и Mongo, но для разных целей).Мне кажется, что у вас есть объекты, которые можно представить в виде хэшей.Как Mongo, так и Redis могут хранить хэши, но Mongo может делать гораздо больше.С Mongo вы можете искать документ по любому из его полей, вы можете добавить индекс, чтобы ускорить его, и поле даже не должно быть строкой, это может быть число, дата, список, даже документ(или список документов), и все документы не должны помещаться в ОЗУ (хотя это изменится, когда функция хранилища дисков Redis будет завершена).У Redis этого нет.Вам нужно было бы реализовать индексы самостоятельно, чтобы иметь возможность поиска, вы не можете хранить что-либо, кроме строк (иногда это действительно неудобно), и вы не можете хранить ничего, кроме плоских хэшей (не прибегая к реализации или использованию какого-либо отображения).слой типа Ом ).
Вы также упоминаете скорость.Redis невероятно быстр, и Mongo тоже неплох, но для вашего случая использование Mongo может быть быстрее.Заметьте, я говорю , используя Mongo, но не сам Mongo будет быстрее.Дело в том, что если вы пользуетесь Redis и по-прежнему хотите иметь возможность искать документ по полю, не являющемуся первичным ключом, вам, как я уже упоминал выше, придется реализовать это самостоятельно.Поиск тогда должен будет сделать по крайней мере два запроса к Redis, один для поиска в индексе и один для получения документа.Если поиск приводит к более чем одному документу, вам нужно будет сделать запрос для каждого документа в отдельности.Затраты на выполнение всех этих запросов, вероятно, сделают использование Redis хуже, чем использование Mongo.По моему опыту, все, кроме самого простого кеша, очереди или чего-либо подобного, должно отправлять в Redis более одного запроса, чтобы получить все необходимое.
Итак, имея в своем распоряжении ограниченную информацию, я рекомендую MongoDB.