You need to know the name of all of your hash members in order to perform a pipelined hget. But since you are scattering your hash members over a bunch of different redis hashes (and even worse, you are taking standard key/value entries and stuffing them into redis hashes), that's not possible. That's also why you can't use hmgetall.
If you are trying to use your get_hash_name() as a method of sharding, you are making a mistake with regards to it's use with hashes (and really, your conflation of standard set() with hset() is part of that).
Really, your set() method should be renamed and look something like...
Other methods you list should be changed appropriately and similarly.
Is the code you have provided a mistake? What are you trying to do?
Regards, - Josiah
On Sun, Sep 5, 2010 at 8:47 PM, adamjamesdrew <thei...@gmail.com> wrote: > import hashlib,redis > sha1 = hashlib.sha1 > > class RedisWrapper(redis.Redis): > > def get_hash_name(self,key): > return sha1(key).hexdigest()[:4] > > def exists(self,key): > return self.hexists(self.get_hash_name(key)) > > def get(self,key): > return self.hget(self.get_hash_name(key),key) > > def set(self,key,value): > self.hset(self.get_hash_name(key),key,value) > > def incrby(self,key,incr): > self.hincrby(self.get_hash_name(key),key,incr) > > My questions is: > The MGET command is now broken. I use that command for performance > reasons. Can anyone think of an easy way to implement the MGET with > comparable performance? > > -- > You received this message because you are subscribed to the Google Groups "Redis DB" group. > To post to this group, send email to redi...@googlegroups.com. > To unsubscribe from this group, send email to redis-db+u...@googlegroups.com. > For more options, visit this group at http://groups.google.com/group/redis-db?hl=en. > >