Gli hash Redis sono utili per archiviare dati più complessi, come suggerisci nella tua domanda. Li uso esattamente per questo:per archiviare oggetti con più attributi che devono essere memorizzati nella cache (in particolare, i dati di inventario per un particolare prodotto su un sito di e-commerce). Certo, potrei usare una stringa concatenata, ma ciò aggiunge complessità non necessaria al mio codice client e non è possibile aggiornare un singolo campo.
Potresti avere ragione:i tutorial potrebbero semplicemente essere di prima dell'introduzione degli hash. Sono stati chiaramente progettati per archiviare rappresentazioni di oggetti:http://oldblog.antirez.com/post/redis-weekly-update-1.html
Suppongo che una preoccupazione sarebbe il numero di comandi che Redis deve servire quando viene inserito un nuovo elemento (n numero di comandi, dove n è il numero di campi nell'hash) rispetto a un semplice comando String SET. Non ho ancora riscontrato che questo sia un problema su un servizio che colpisce Redis circa 1 milione di volte al giorno. L'utilizzo della giusta struttura di dati per me è più importante di un impatto trascurabile sulle prestazioni.
(Inoltre, leggi il mio commento su Redis Sets vs. Redis Strings - Penso che la tua domanda si riferisca a Strings ma correggimi se sbaglio!)