def initpool(self): for name in self.nodes: host,port = self.nodes[name].split(':') #print host,port r = redis.StrictRedis(host=host,port=int(port),db=0) self.pool[name] = r self.hr = HashRing(self.nodes.keys())
class ShardRedisManager(object): def __init__(self,modbase,nodes,master_of): self.modbase = modbase self.nodes = nodes self.master_of = master_of self.pool = {} self.hr = None self.initpool() def initpool(self): for name in self.nodes: host,port = self.nodes[name].split(':') #print host,port r = redis.StrictRedis(host=host,port=int(port),db=0) self.pool[name] = r self.hr = HashRing(self.nodes.keys()) def find(self,key): name = self.hr.get_node(key) if name: print 'mapping ', key, ' to ', name return self.pool[name] raise ShardNodeNotFoundError(key)