def insert(self, value): proxy = Proxy(ip=value['ip'], port=value['port'], types=value['types'], protocol=value['protocol'], country=value['country'], area=value['area'], speed=value['speed'], score=value.get('score', config.DEFAULT_SCORE)) mapping = proxy.__dict__ for k in list(mapping.keys()): if k.startswith('_'): mapping.pop(k) object_name = self.get_proxy_name(proxy=proxy) # 存结构 insert_num = self.redis.hmset(object_name, mapping) # 创建索引 if insert_num > 0: for index_name in self.index_names: self.create_index(index_name, object_name, proxy) return insert_num
def insert(self, value): proxy = Proxy(ip=value['ip'], port=value['port'], types=value['types'], protocol=value['protocol'], country=value['country'], area=value['area'], speed=value['speed'], score=0) mapping = proxy.__dict__ for k in list(mapping.keys()): if k.startswith('_'): mapping.pop(k) object_name = self.get_proxy_name(proxy=proxy) # 存结构 self.redis.hmset(object_name, mapping) # 创建索引 for name in self.index_names: index_key = self.get_index_name(name, value[name]) self.redis.sadd(index_key, object_name)
def insert(self, value): proxy = Proxy(ip=value['ip'], port=value['port'], types=value['types'], protocol=value['protocol'], country=value['country'], area=value['area'], speed=value['speed'], score=value.get('score', config.DEFAULT_SCORE)) mapping = proxy.__dict__ #mapping:{'port': 433, 'speed': 123, 'ip': 'localhost', 'area': '广州', '_sa_instance_state': <sqlalchemy.orm.state.InstanceState object at 0x7f43091b3dd8>, # 'country': '中国', 'types': 0, 'protocol': 1} for k in list(mapping.keys()): if k.startswith('_'): mapping.pop(k) object_name = self.get_proxy_name(proxy=proxy) # 存结构 insert_num = self.redis.hmset(object_name, mapping) # 创建索引 #存入哈希类型到redis,索引为object_name ;Field,value 为mapping if insert_num > 0: for index_name in self.index_names: self.create_index(index_name, object_name, proxy) return insert_num
def insert(self, value): proxy = Proxy( ip=value["ip"], port=value["port"], types=value["types"], protocol=value["protocol"], country=value["country"], area=value["area"], speed=value["speed"], score=value.get("score", config.DEFAULT_SCORE), ) mapping = proxy.__dict__ for k in list(mapping.keys()): if k.startswith("_"): mapping.pop(k) object_name = self.get_proxy_name(proxy=proxy) # 存结构 insert_num = self.redis.hmset(object_name, mapping) # 创建索引 if insert_num > 0: for index_name in self.index_names: self.create_index(index_name, object_name, proxy) return insert_num
def get_proxy_by_name(self, name): pd = self.redis.hgetall(name) if pd: return Proxy( **{k.decode('utf8'): v.decode('utf8') for k, v in pd.items()})