Если почти всегда читаете/пишете объект целиком и сериализация проста — String; если часто трогаете отдельные поля и хотите частичные апдейты без парсинга — Hash.
Разбор
- Hash удобен для точечных
HINCRBY по счётчикам полей.
- JSON-модуль (RedisJSON) меняет уравнение — полевой доступ к документам.
- Большие объекты в Hash всё равно занимают память на field names.
- Смотрите паттерн доступа, а не «лучший тип вообще».
Итог
Выбор структуры = паттерн чтения/записи, не вкус сериализации.