def get(self, request, redis_id): redis_obj = RedisConf.objects.get(id=redis_id) cl, cur_server_index, cur_db_index = get_cl(redis_name=redis_obj.name, db_id=0) cl.bgsave() return HttpResponseRedirect(reverse("index"))
def get(self, request): client_id = request.GET.get('client_id', None) if client_id is not None: redis_obj = RedisConf.objects.get(id=client_id) status = check_redis_connect(name=redis_obj.name) if status is True: client, cur_server_index, cur_db_index = get_cl( redis_name=redis_obj.name) client_list = client.client_list() "分页" limit = int(request.GET.get('limit', 30)) page = int(request.GET.get('page', 1)) max_num = limit * page min_num = max_num - limit data = { 'code': 0, 'msg': '', 'count': len(client_list), 'data': client_list[min_num:max_num] } else: data = {'code': 1, 'msg': 'Error, 请联系系统管理员!', 'data': ''} return JsonResponse(data, safe=False)
def get(self, request, redis_name, value_db_id, key): from public.redis_api import get_cl from public.data_view import get_value logs.info('get value: redis_name={0}, db={1}, key={2}'.format( redis_name, value_db_id, key)) cl = get_cl(redis_name, int(value_db_id)) value_dict = {'code': 0, 'msg': '', 'data': ''} if cl.exists(key): value = '' if request.GET.get("type", None) == 'ttl': value = cl.ttl(key) if value is None: value = -1 logs.info( 'get key ttl: redis_name={0}, db={1}, key={2}, ttl={3}'. format(redis_name, value_db_id, key, value)) else: try: value = get_value(key, int(value_db_id), cl) except Exception as e: logs.error( 'get value is error: redis_name:{0}, key:{1}, db:{2}, cl:{3}, error_info:{4}' .format(redis_name, key, value_db_id, cl, e)) value_dict['code'] = 1 value_dict['data'] = value else: logs.warning( 'key is not exists: redis_name={0}, db={1}, key={2}'.format( redis_name, value_db_id, key)) value_dict['code'] = 1 return JsonResponse(value_dict, safe=False)
def get(self, request): # print request.META["HTTP_REFERER"] servers = get_redis_conf(name=None, user=request.user) data = [] for ser in servers: try: redis_obj = RedisConf.objects.get(id=ser.redis) except ObjectDoesNotExist: continue status = check_redis_connect(name=redis_obj.name) if status is True: client, cur_server_index, cur_db_index = get_cl( redis_name=redis_obj.name) info_dict = client.info() time_local = time.localtime(info_dict['rdb_last_save_time']) dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local) info_dict['rdb_last_save_time'] = dt info_dict['socket'] = redis_obj.socket # info_dict.update(host=client.connection_pool.connection_kwargs['host']) info_dict.update(redis_id=ser.redis) data.append(info_dict) return render(request, 'index.html', { 'data': data, 'console': 'console', })
def get_info(self, redis_obj): status = check_redis_connect(name=redis_obj.name) if status is True: client = get_cl(redis_name=redis_obj.name) info_dict = get_redis_info(cl=client, number=1) time_local = time.localtime(info_dict['rdb_last_save_time']) dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local) info_dict['rdb_last_save_time'] = dt info_dict.update(host=redis_obj.host) info_dict.update(redis_id=redis_obj.id) return info_dict return False
def post(self, request): data = {"code": 0, "msg": "successful", "data": ""} redis_name = request.POST.get("redis_name", None) db_id = request.POST.get("db_id", None) try: cl = get_cl(redis_name=redis_name, db_id=db_id) cl.flushdb() except Exception as e: logs.error(e) data["code"] = 1 data["msg"] = "failed" return JsonResponse(data=data, safe=False)
def post(self, request, redis_name, value_db_id, key): """ 修改TTL """ from public.redis_api import get_cl cl = get_cl(redis_name, int(value_db_id)) value_dict = {'code': 0, 'msg': '', 'data': ''} ttl = request.POST.get("ttl", None) if cl.exists(key) and ttl: try: cl.expire(key, ttl) value_dict['msg'] = "修改成功" except Exception as e: logs.error(e) value_dict['msg'] = '修改失败,请联系管理员' return JsonResponse(value_dict)
def get(self, request, redis_name, db_id): from public.redis_api import get_cl, get_all_keys_tree values = [] "搜索" search_name = request.GET.get('key[id]', None) "分页" limit = int(request.GET.get('limit', 30)) page = int(request.GET.get('page', 1)) max_num = limit * page min_num = max_num - limit cl = get_cl(redis_name, int(db_id)) if search_name is not None: keys = get_all_keys_tree(client=cl, key=search_name, cursor=0, min_num=min_num, max_num=max_num) else: keys = get_all_keys_tree(client=cl, cursor=0, min_num=min_num, max_num=max_num) for key in keys: values.append({'key': key}) db_key_num = cl.dbsize() if isinstance(db_key_num, dict): all_keys = 0 for k, v in db_key_num.items(): all_keys = all_keys + v db_key_num = all_keys / 2 batch_key_num = scan_batch if batch_key_num > db_key_num: key_num = db_key_num else: key_num = batch_key_num key_value_dict = { 'code': 0, 'msg': '', 'count': key_num, 'data': values } return JsonResponse(key_value_dict, safe=False)
def post(self, request): return JsonResponse({ "code": 1, "msg": "this operation not allow!", "data": "" }) data = {"code": 0, "msg": "successful", "data": ""} redis_name = request.POST.get("redis_name", None) db_id = request.POST.get("db_id", None) try: cl, cur_server_index, cur_db_index = get_cl(redis_name=redis_name, db_id=db_id) cl.flushdb() except Exception as e: logs.error(e) data["code"] = 1 data["msg"] = "failed" return JsonResponse(data=data, safe=False)
def get(self, request, redis_name, edit_db_id): from public.redis_api import get_cl from public.data_view import get_value cl = get_cl(redis_name, int(edit_db_id)) key = request.GET.get('key', None) if cl.exists(key): value = get_value(key, int(edit_db_id), cl) if cl.type(key) == 'list': value_list = [] num = 0 for i in value['value']: value_dict = {str(num): i} num += 1 value_list.append(value_dict) value['value'] = value_list return render( request, 'edit.html', { 'db_num': 'db' + str(edit_db_id), 'redis_name': redis_name, 'data': value, })
def post(self, request, redis_name, value_db_id): """ 修改TTL """ from public.redis_api import get_cl cl = get_cl(redis_name, int(value_db_id)) value_dict = {'code': 0, 'msg': '', 'data': ''} key = request.POST.get('key', None) ttl = request.POST.get("ttl", None) if cl.exists(key) and ttl != None: try: if long(ttl) < 0: cl.persist(key) else: cl.expire(key, ttl) logs.info( 'change key tll: redis_name={0}, db={1}, key={2}, ttl={3}'. format(redis_name, value_db_id, key, ttl)) value_dict['msg'] = "修改成功" except Exception as e: logs.error(e) value_dict['msg'] = '修改失败,请联系管理员' return JsonResponse(value_dict)
def get(self, request, redis_name, value_db_id, key): from public.redis_api import get_cl from public.data_view import get_value cl, cur_server_index, cur_db_index = get_cl(redis_name, int(value_db_id)) value_dict = {'code': 0, 'msg': '', 'data': ''} if cl.exists(key): value = '' if request.GET.get("type", None) == 'ttl': value = cl.ttl(key) if value is None: value = -1 else: try: value = get_value(key, cur_server_index, cur_db_index, cl) except Exception as e: logs.error(e) value_dict['code'] = 1 value_dict['data'] = value else: value_dict['code'] = 1 return JsonResponse(value_dict, safe=False)
def post(self, request): from public.data_change import ChangeData from loginfo.models import OperationInfo from public.redis_api import get_cl from public.data_view import get_value redis_name = request.POST.get('redis_name', None) db_id = request.POST.get('db_id', None) key = request.POST.get('key', None) cl = get_cl(redis_name, int(db_id)) old_data = get_value(key, int(db_id), cl) db = OperationInfo( username=request.user.username, server=redis_name, db=db_id, key=key, old_value=old_data, type='del', ) db.save() if key: ch_data = ChangeData(redis_name=redis_name, db_id=db_id) if ch_data.delete_key(key=key): data = { 'code': 0, 'msg': 'KEY: ' + key + ' is Success', 'data': '' } return JsonResponse(data) data = {'code': 1, 'msg': 'KEY: ' + key + ' is Failed', 'data': ''} return JsonResponse(data)
def get(self, request): client_id = request.GET.get('client_id', None) if client_id is not None: redis_obj = RedisConf.objects.get(id=client_id) status = check_redis_connect(name=redis_obj.name) if status is True: client = get_cl(redis_name=redis_obj.name) client_list = client.client_list() client_list_flat = [] if redis_obj.type == 1: #cluster if client_list.has_key(redis_obj.host + ':' + str(redis_obj.port)): for subclient in client_list.get(redis_obj.host + ':' + str(redis_obj.port)): client_list_flat.append(subclient) else: for clientone in client_list.values(): for subclient in clientone: client_list_flat.append(subclient) else: #single node client_list_flat = client_list "分页" limit = int(request.GET.get('limit', 30)) page = int(request.GET.get('page', 1)) max_num = limit * page min_num = max_num - limit data = { 'code': 0, 'msg': '', 'count': len(client_list_flat), 'data': client_list_flat[min_num:max_num] } else: data = {'code': 1, 'msg': 'Error, 请联系系统管理员!', 'data': ''} return JsonResponse(data, safe=False)
def __init__(self, redis_name=None, db_id=None): self.redis_name = redis_name self.db_id = db_id self.cl = get_cl(redis_name=self.redis_name, db_id=self.db_id)
def post(self, request, redis_name, edit_db_id): from public.data_change import ChangeData from public.redis_api import get_cl from public.data_view import get_value from loginfo.models import OperationInfo cl = get_cl(redis_name, int(edit_db_id)) ch_data = ChangeData(redis_name=redis_name, db_id=edit_db_id) key = request.GET.get('key', None) post_key_type = request.POST.get('Type', None) old_data = get_value(key, int(edit_db_id), cl) if post_key_type == 'string': post_value = request.POST.get('value', None) ch_data.edit_value(key=key, value=None, new=post_value, score=None) elif post_key_type == 'zset': score = request.POST.get('Score', None) value = request.POST.get('Value', None) old_value = request.POST.get('Old_Value', None) ch_data.edit_value(key=key, value=old_value, new=value, score=score) elif post_key_type == 'set': value = request.POST.get('Value', None) old_value = request.POST.get('Old_Value', None) ch_data.edit_value(key=key, value=old_value, new=value, score=None) elif post_key_type == 'hash': value_key = request.POST.get('Key', None) value = request.POST.get('Value', None) ch_data.edit_value(key=key, value=value_key, new=value, score=None) elif post_key_type == 'list': index = request.POST.get('Index', None) value = request.POST.get('Value', None) ch_data.edit_value(key=key, value=index, new=value, score=None) data = get_value(key, int(edit_db_id), cl) if cl.type(key) == 'list': value_list = [] num = 0 for i in data['value']: value_dict = {str(num): i} num += 1 value_list.append(value_dict) data['value'] = value_list db = OperationInfo( username=request.user.username, server=redis_name, db='db' + edit_db_id, key=key, old_value=old_data, value=data, type='edit', ) db.save() return render( request, 'edit.html', { 'db_num': 'db' + str(edit_db_id), 'redis_name': redis_name, 'data': data })
def __init__(self, redis_name=None, db_id=None): self.redis_name = redis_name self.db_id = db_id self.cl, self.cur_server_index, self.cur_db_index = get_cl( redis_name=self.redis_name, db_id=self.db_id)
def get(self, request, redis_name, value_db_id): from public.redis_api import get_cl from public.data_view import get_value key = request.GET.get('key', None) logs.info('get value: redis_name={0}, db={1}, key={2}'.format( redis_name, value_db_id, key)) cl = get_cl(redis_name, int(value_db_id)) value_dict = {'code': 0, 'msg': '', 'data': ''} keyobj = None isCmd = False try: keyobj = json.loads(key) if keyobj.has_key('cmd'): isCmd = True except Exception as e: pass finally: pass if isCmd: cmdList = keyobj.get('cmd').split() cmdList[0] = cmdList[0].upper() logs.info('execute: cmd={0}'.format(" ".join(cmdList))) try: res = cl.execute_command(*cmdList) except Exception as e: res = str(e) logs.info('execute response={0}'.format(res)) if isinstance(res, basestring): res = res.replace("\r\n", "\n").strip("\n").split("\n") resinfo = { "db": int(value_db_id), "key": " ".join(cmdList), "value": json.dumps(res), "ttl": -1, "type": "string" } #{'$response':res} #{"encoding":"","db":0,"value":"aa","key":"a a","ttl":-1,"type":"string","size":2} value_dict['data'] = resinfo return JsonResponse(value_dict, safe=False) if cl.exists(key): value = {} if request.GET.get("type", None) == 'ttl': ttl = cl.ttl(key) if ttl is None: ttl = -1 logs.info( 'get key ttl: redis_name={0}, db={1}, key={2}, ttl={3}'. format(redis_name, value_db_id, key, ttl)) value = { "db": value_db_id, "key": key, "value": ttl, "ttl": ttl, "type": "long" } else: try: value = get_value(key, int(value_db_id), cl) except Exception as e: logs.error( 'get value is error: redis_name:{0}, key:{1}, db:{2}, cl:{3}, error_info:{4}' .format(redis_name, key, value_db_id, cl, e)) value_dict['code'] = 1 if value.has_key('value'): value['value'] = json.dumps(value.get('value')) value_dict['data'] = value else: logs.warning( 'key is not exists: redis_name={0}, db={1}, key={2}'.format( redis_name, value_db_id, key)) value_dict['code'] = 1 return JsonResponse(value_dict, safe=False)