Have you looked into the new BITFIELD command?
With BITFIELD, each key can be treated as a bucket-of-counters. So, instead of using a Hash per item's counters, use the BITFIELD instead.
If your interested in getting all counters per item, you can either compose a BITFIELD GET or, possibly, just GET the entire String value and break it down at the client.
In either case, I suspect BITFIELD would perform better than HMGET/HGETALL and would definitely require less RAM.
Itamar Haber | Chief Developer Advocate
Redis Watch Newsletter | &&(curat||edit||janit||)
Redis Labs ~/redis
Mobile: +972 (54) 567 9692
Email: ita...@redislabs.com
Twitter: @itamarhaber
Skype: itamar.haber