function redisOp(a, b) { var c = "name=" + a + "&func=" + b; var d = ""; switch(b) { case "stop":d = '停止';break; case "start":d = '启动';break; case "restart":d = '重启';break; case "reload":d = '重载';break; } layer.confirm( '您真的要{1}{2}服务吗?'.replace('{1}', d).replace('{2}', a), {icon:3,closeBtn: 2}, function() { var e = layer.msg('正在{1}{2}服务,请稍候...'.replace('{1}', d).replace('{2}', a), {icon: 16,time: 0}); $.post("/plugins/run", c, function(g) { layer.close(e); var f = g.data == 'ok' ? '{1}服务已{2}'.replace('{1}', a).replace('{2}', d):'{1}服务{2}失败!'.replace('{1}', a).replace('{2}', d); layer.msg(f, {icon: g.data == 'ok' ? 1 : 2}); if(b != "reload" && g.data == 'ok') { if (b == 'start') { setRedisService('redis', true); } else if (b=='stop'){ setRedisService('redis', false); } else { } } if(g.data != 'ok') { layer.msg(g.data, {icon: 2,time: 0,shade: 0.3,shadeClose: true}); } },'json').error(function() { layer.close(e); layer.msg('操作成功!', {icon: 1}); }); }) } //服务 function setRedisService(name, status){ var serviceCon ='

当前状态:'+(status ? '开启' : '关闭' )+ '

\ \ \ \
'; $(".soft-man-con").html(serviceCon); } //服务 function redisService(){ $.post('/plugins/run', {name:'redis', func:'status'}, function(data) { console.log(data); if(!data.status){ layer.msg(data.msg,{icon:0,time:3000,shade: [0.3, '#000']}); return; } if (data.data == 'start'){ setRedisService('redis', true); } else { setRedisService('redis', false); } },'json'); } redisService(); //配置修改 --- start function redisConfig(type){ var con = '

提示:Ctrl+F 搜索关键字,Ctrl+G 查找下一个,Ctrl+S 保存,Ctrl+Shift+R 查找替换!

\ \ '; $(".soft-man-con").html(con); var loadT = layer.msg('配置文件路径获取中...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/plugins/run', {name:'redis', func:'conf'},function (data) { layer.close(loadT); var loadT2 = layer.msg('文件内容获取中...',{icon:16,time:0,shade: [0.3, '#000']}); var fileName = data.data; $.post('/files/get_body', 'path=' + fileName, function(rdata) { layer.close(loadT2); if (!rdata.status){ layer.msg(rdata.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } $("#textBody").empty().text(rdata.data.data); $(".CodeMirror").remove(); var editor = CodeMirror.fromTextArea(document.getElementById("textBody"), { extraKeys: { "Ctrl-Space": "autocomplete", "Ctrl-F": "findPersistent", "Ctrl-H": "replaceAll", "Ctrl-S": function() { redisConfSafe(fileName); } }, lineNumbers: true, matchBrackets:true, }); editor.focus(); $(".CodeMirror-scroll").css({"height":"300px","margin":0,"padding":0}); $("#OnlineEditFileBtn").click(function(){ $("#textBody").text(editor.getValue()); redisConfSafe(fileName); }); },'json'); },'json'); } //配置保存 function redisConfSafe(fileName) { var data = encodeURIComponent($("#textBody").val()); var encoding = 'utf-8'; var loadT = layer.msg('保存中...', { icon: 16, time: 0 }); $.post('/files/save_body', 'data=' + data + '&path=' + fileName + '&encoding=' + encoding, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); },'json'); } //配置修改 --- end //redis负载状态 start function redisStatus() { var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); $.post('/plugins/run', {name:'redis', func:'run_info'}, function(data) { layer.close(loadT); if (!data.status){ layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } var rdata = $.parseJSON(data.data); 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); },'json'); } //redis负载状态 end