Rails Model Caching with Redis

Thanks for the article, caching requires a lot of effort, it seems you have to figure out a lot of things without any framework, just using creativity, to know what to cache, how to cache, what and when to invalidate.

In your article, if application is too big you could use a Struct to not to have to change views, is that possible? or does ruby(array of objects) → cache(string), then cache(string) → ruby(array of objects) consumes more resources than cache(string) → ruby(array of hashes)?

Would you cache just one model? or maybe expire just the updated model? why? what if the database has a lot of records? you might require a paginated cache, right?

Caching always makes me thing in a lot of questions.