Redis hashes are good for storing more complex data, as you suggest in your question. I use them just for this - to store objects with several attributes that need to be cached (in particular, inventory data for a specific product on an e-commerce site). Of course, I could use a concatenated string, but this adds unnecessary complexity to my client code, and updating a single field is not possible.
Perhaps you are right - study guides may simply be due to the fact that hashes were introduced. They were clearly designed to store object representations: http://oldblog.antirez.com/post/redis-weekly-update-1.html
I believe that one of the problems would be the number of commands that Redis should serve when a new element is inserted (n is the number of commands, where n is the number of fields in the Hash) compared to the simple String SET command. I did not find that this is a problem yet on a service that hits Redis about 1 million times a day. Using the right data structure is more important to me than a slight performance impact.
(Also see my comment regarding Redis Sets vs. Redis Strings - I think your question relates to strings, but correct me if I am wrong!)
Mike G Nov 26 2018-12-12T00: 00Z
source share