def get_accor_lists(key_, day_list, rate_code=None, room_type=None, env_type="test"): # day_list 为空时,结果返回为空。 redis_ip_list = ['10.1.249.139'] if env_type == "live": redis_ip_list = ['10.1.222.46', '10.1.222.47', '10.1.222.48'] if not day_list: return [] score_start = int(get_redis_score(day_list[0]) + '0000') score_end = int(get_redis_score(day_list[-1]) + '9999') str_list = [] for redis_ip in redis_ip_list: r = REDIS(host=redis_ip, password='', port=6379, db=0) if r.ping(): if r.key_exits(key_): str_list.extend(r.zrangebyscore(key_, score_start, score_end)) else: print (u"{0} 连接失败".format(redis_ip)) str_list_ = list() for str_ in str_list: dict_ = json.loads(str_, encoding='utf-8') if dict_['BizDay'] in day_list: if rate_code is None: if room_type is None or room_type == dict_['InvTypeCode'] or dict_['InvTypeCode'] == '***': str_list_.append(str_) elif rate_code == dict_['RatePlanCode']: if room_type is None or room_type == dict_['InvTypeCode'] or dict_['InvTypeCode'] == '***': str_list_.append(str_) if True in ['***' in i for i in str_list_] and room_type: return sorted(str_list_, key=sort_by_json_with_wildcard) return sorted(str_list_, key=sort_by_json)
def get_redis_key_and_value(redis_ip, redis_key): results = list() if isinstance(redis_ip, basestring) and isinstance(redis_key, basestring): r = REDIS(host=redis_ip, port=6379, db=0) if r.ping(): key_results = r.keys(redis_key + "*") if key_results: for key_result in key_results: if r.key_type(key_result) == "string": value_ = json.loads(r.get(key_result)) if isinstance(value_, dict): results.append((key_result, value_, 1)) else: results.append((key_result, value_, 0)) else: results.append((key_result, "")) return results