Главное, о чем вы хотите подумать, это о том, какие операции вы будете просить об этом ... Это больше, чем производительность.Потому что, если операция недоступна, она просто не будет работать.
Прежде всего, посмотрите на документацию Команды Redis и убедитесь, что набор доступных команд доступен длявы.Большая часть рассуждений, которые я здесь использую, одинакова и в программировании общего назначения.Например, почему вы используете словарь против списка в Python.Документация по командам Redis обычно имеет обозначение Big-O для операций.Большинство отдельных поисков, вставок и т. Д. O(1)
, поэтому между типами нет большой разницы.Я также не нашел большой разницы с точки зрения места для хранения каждого из них.
Есть много других причин, потому что я довольно общий.Этот пост, вероятно, может быть расширен до главы в книге!Это не простой вопрос.
Хэш: Это для случаев, когда вы хотите получить значения с помощью клавиш.Почти как хранилище значений ключей в хранилище значений ключей.Кроме того, вы можете делать «классовые» вещи, имея подпараметры по имени (например, с ключами «адрес», «дата рождения», ...)
Список: В основном набор без ключа, это набор вещей, в которых мгновенный поиск индивидуального не имеет большого значения.Например, у вас может быть список транзакций, в которых участвует пользователь.
Set: По сути, хэш, но не имеет значения.Это для того, когда вы хотите знать, "это вещь в наборе или нет?"Наборы, в отличие от списков, требуют постоянного времени, чтобы выяснить, является ли что-то членом.Также, в отличие от списков, предметы в наборе уникальны.С наборами вы также можете делать пересечения и другие вещи.Это не то, что вы можете сделать с хэшами.Например, вы хотите найти всех пользователей, которые купили вещи в вашем офисе в Италии (один комплект), и всех пользователей, которые купили вещи в вашем офисе во Франции (другой набор), выполнив union .
Сортированные наборы : Подобен набору, но имеет дополнительные параметры, включающие поиск диапазонов или рангов предметов.