function str2Obj(str){ var data = {}; kv = str.split('&'); for(i in kv){ v = kv[i].split('='); data[v[0]] = v[1]; } return data; } function redisPost(method, version, args,callback){ var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); var req_data = {}; req_data['name'] = 'redis'; req_data['func'] = method; req_data['version'] = version; if (typeof(args) == 'string'){ req_data['args'] = JSON.stringify(str2Obj(args)); } else { req_data['args'] = JSON.stringify(args); } $.post('/plugins/run', req_data, function(data) { layer.close(loadT); if (!data.status){ //错误展示10S layer.msg(data.msg,{icon:0,time:2000,shade: [10, '#000']}); return; } if(typeof(callback) == 'function'){ callback(data); } },'json'); } function redisPostCallbak(method, version, args,callback){ var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); var req_data = {}; req_data['name'] = 'redis'; req_data['func'] = method; args['version'] = version; if (typeof(args) == 'string'){ req_data['args'] = JSON.stringify(str2Obj(args)); } else { req_data['args'] = JSON.stringify(args); } $.post('/plugins/callback', req_data, function(data) { layer.close(loadT); if (!data.status){ layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } if(typeof(callback) == 'function'){ callback(data); } },'json'); } //redis负载状态 start function redisStatus(version) { redisPost('run_info',version, {},function(data){ var rdata = $.parseJSON(data.data); // if (!rdata.status){ // layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); // return; // } hit = (parseInt(rdata.keyspace_hits) / (parseInt(rdata.keyspace_hits) + parseInt(rdata.keyspace_misses)) * 100).toFixed(2); var con = '
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
字段当前值说明
uptime_in_days' + rdata.uptime_in_days + '已运行天数
tcp_port' + rdata.tcp_port + '当前监听端口
connected_clients' + rdata.connected_clients + '连接的客户端数量
used_memory_rss' + toSize(rdata.used_memory_rss) + 'Redis当前占用的系统内存总量
used_memory' + toSize(rdata.used_memory) + 'Redis当前已分配的内存总量
used_memory_peak' + toSize(rdata.used_memory_peak) + 'Redis历史分配内存的峰值
mem_fragmentation_ratio' + rdata.mem_fragmentation_ratio + '%内存碎片比率
total_connections_received' + rdata.total_connections_received + '运行以来连接过的客户端的总数量
total_commands_processed' + rdata.total_commands_processed + '运行以来执行过的命令的总数量
instantaneous_ops_per_sec' + rdata.instantaneous_ops_per_sec + '服务器每秒钟执行的命令数量
keyspace_hits' + rdata.keyspace_hits + '查找数据库键成功的次数
keyspace_misses' + rdata.keyspace_misses + '查找数据库键失败的次数
hit' + hit + '%查找数据库键命中率
latest_fork_usec' + rdata.latest_fork_usec + '最近一次 fork() 操作耗费的微秒数
'; $(".soft-man-con").html(con); }); } //redis负载状态 end //配置修改 function getRedisConfig(version) { redisPost('get_redis_conf', version,'',function(data){ // console.log(data); var rdata = $.parseJSON(data.data); // console.log(rdata); var mlist = ''; for (var i = 0; i < rdata.length; i++) { var w = '70' if (rdata[i].name == 'error_reporting') w = '250'; var ibody = ''; switch (rdata[i].type) { case 0: var selected_1 = (rdata[i].value == 1) ? 'selected' : ''; var selected_0 = (rdata[i].value == 0) ? 'selected' : ''; ibody = '' break; case 1: var selected_1 = (rdata[i].value == 'On') ? 'selected' : ''; var selected_0 = (rdata[i].value == 'Off') ? 'selected' : ''; ibody = '' break; } mlist += '

' + rdata[i].name + '' + ibody + ', ' + rdata[i].ps + '

' } var phpCon = '
' + mlist + '\
\
\
' $(".soft-man-con").html(phpCon); }); } //提交PHP配置 function submitConf(version) { var data = { version: version, bind: $("input[name='bind']").val(), 'port': $("input[name='port']").val(), 'timeout': $("input[name='timeout']").val(), maxclients: $("input[name='maxclients']").val(), databases: $("input[name='databases']").val(), requirepass: $("input[name='requirepass']").val(), maxmemory: $("input[name='maxmemory']").val(), }; redisPost('submit_redis_conf', version, data, function(ret_data){ var rdata = $.parseJSON(ret_data.data); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); }