File: /www/server/panel/BTPanel/static/js/index510.js
import{k as f,dR as G,F as re,G as A,M as P,w as ie,bZ as ue,j as J,cP as de,cO as me,cR as pe,cZ as ce}from"./utils-lib.js?v=1777008528";import{aI as Z,r as u,H as Q,c as _e,aC as fe,o as ve,I as ye,j as p,k as v,e as a,v as o,q as r,s as N,p as n,J as E,F as j,B as H,C as L,x as g,Q as M,aE as be,ad as ge,z as ke,ab as we,ay as xe,aA as Ce,G as Ve,am as Se,an as Re,aW as Ee}from"./base-lib.js?v=1777008528";import{_ as Te}from"./index206.js?v=1777008528";import{_ as De}from"./index116.js?v=1777008528";import{B as Ie}from"./index130.js?v=1777008528";import{S as Ue,_ as he}from"./index.vue_vue_type_script_setup_true_lang24.js?v=1777008528";import{S as q,_ as Be}from"./index.vue_vue_type_script_setup_true_lang23.js?v=1777008528";import{w as Fe,bA as Pe,bB as qe,bC as Oe,bD as $e,bE as Ae}from"./index3.js?v=1777008528";import{a as Ne}from"./useMethod5.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./ace.js?v=1777008528";import"./index119.js?v=1777008528";import"./database.js?v=1777008528";import"./useStore4.js?v=1777008528";const je=Ue(),He=q(),{compData:_}=Z(q()),T=u("service"),m=u(!1),Le=u("");u(!1);Q({re_level:1,tips:""});const W=u(""),Me=u(""),ze=u([]),C=u(""),K=u("暂无数据"),X=async()=>{await f({loading:m,request:G({path:"/www/server/redis/redis.log"}),data:{data:[String,K]}})},z=async()=>{await f({loading:"正在保存配置,请稍后...",request:re({path:"/www/server/redis/redis.conf",data:C.value,encoding:"utf-8"}),message:!0})},Ge=async()=>{await f({loading:m,request:G({path:"/www/server/redis/redis.conf"}),data:{data:[String,C]}})},i=Q({path:"",appendonly:"",appendfsync:"",rdb:[]}),Je=()=>{Fe({type:"dir",path:i.path,change:e=>{i.path=e}})},Ze=async()=>{await f({loading:m,request:Oe(),success:e=>{var s,c,V,k,t,d;i.path=((s=e==null?void 0:e.data)==null?void 0:s.dir)||"",i.appendonly=((V=(c=e==null?void 0:e.data)==null?void 0:c.aof)==null?void 0:V.appendonly)||"no",i.appendfsync=((t=(k=e==null?void 0:e.data)==null?void 0:k.aof)==null?void 0:t.appendfsync)||"no",i.rdb=((d=e==null?void 0:e.data)==null?void 0:d.rdb)||[]}})},F=async e=>{const s={...e==="aof"?{appendonly:i.appendonly,appendfsync:i.appendfsync}:{},...e==="rdb"?{rdb:JSON.stringify(i.rdb)}:{},...e==="dir"?{dir:i.path}:{}};await f({loading:"正在保存中,请稍后...",request:Pe(s),message:!0})},Y=u([{name:"已运行天数",key:"uptime_in_days",function:e=>e.uptime_in_days,value:""},{name:"当前监听端口",key:"tcp_port",value:"",function:e=>e.tcp_port},{name:"连接的客户端数量",key:"connected_clients",value:"",function:e=>e.connected_clients},{name:"Redis当前占用的系统内存总量",key:"used_memory_rss",value:"",function:e=>A(Number(e.used_memory_rss))},{name:"Redis历史分配内存的峰值",key:"used_memory",value:"",function:e=>A(Number(e.used_memory))},{name:"内存碎片比率",key:"mem_fragmentation_ratio",value:"",function:e=>e.mem_fragmentation_ratio},{name:"运行以来连接过的客户端的总数量",key:"total_connections_received",value:"",function:e=>e.total_connections_received},{name:"运行以来执行过的命令的总数量",key:"total_commands_processed",value:"",function:e=>e.total_commands_processed},{name:"服务器每秒钟执行的命令数量",key:"instantaneous_ops_per_sec",value:"",function:e=>e.instantaneous_ops_per_sec},{name:"查找数据库键成功的次数",key:"keyspace_hits",value:"",function:e=>e.keyspace_hits},{name:"查找数据库键失败的次数",key:"keyspace_misses",value:"",function:e=>e.keyspace_misses},{name:"查找数据库键命中率",key:"hit",value:"",function:e=>{var s=(parseInt(e.keyspace_hits)/(parseInt(e.keyspace_hits)+parseInt(e.keyspace_misses))*100).toFixed(2);return Number(s)?s:"0"}},{name:"最近一次 fork() 操作耗费的微秒数",key:"latest_fork_usec",value:"",function:e=>e.latest_fork_usec}]),Qe=async()=>{await f({loading:m,request:$e(),success:e=>{if(e.status===!1)return P.msg({customClass:"bt-message-error-html",dangerouslyUseHTMLString:!0,message:e.msg||e.data.msg,type:"error",showClose:!0});Y.value.forEach(s=>{s.function&&(s.value=s.function(e.data))})}})},D=u([]);u();const We=async()=>{let e={};D.value.forEach(s=>{const c=s.name;e[c]=s.value}),await f({loading:"正在保存中,请稍后...",request:qe(e),message:!0,success:s=>{s.status&&P.success("设置成功,重启服务后配置生效,请重启服务")}})},Ke=async e=>{const s={restart:"重启",stop:"停止",reload:"重载配置",start:"启动"};await ie({title:"".concat(s[e],"redis服务"),content:"是否".concat(s[e],"redis服务?")}),await f({loading:"正在".concat(s[e],"redis服务,请稍后..."),request:ue({name:"redis",type:e}),message:!0,success:c=>{c.status&&J.go(0)}})},Xe=async()=>{m.value=!0;try{const e=await Ae();if(D.value=[],e.status===!1)return P.error(e.msg);e.data.forEach(s=>{D.value.push({name:s.name,value:s.value,ps:s.ps})})}catch(e){}finally{m.value=!1}};u(!1);const Ye=async(e,s)=>{switch(e){case"service":case"version":ee();break;case"config":Ge();break;case"state":Qe();break;case"performance":Xe();break;case"storage":Ze();break;case"logs":X();break;case"jump":J.push("/database/redis"),s==null||s();break}},et=[{content:"此处为redis主配置文件,若您不了解配置规则,请勿随意修改"},{isHtml:!0,content:'<span class="text-danger">请勿开启Redis外网访问权限,未限制访问IP的情况下极大概率导致服务器被入侵。</span>'},{content:"多个 IP 请添加多个 bind,一个bind里面不支持有多个IP。"}],ee=e=>{T.value="service",e&&(_.value=e);const s={..._.value,name:"redis"};He.init(s),je.init(s),Le.value=_.value.status,W.value=_.value.version.split(".")[0]+"."+_.value.version.split(".")[1],Me.value=_.value.version.split(".")[0]+"."+_.value.version.split(".")[1],ze.value=_.value.versions},tt={class:"flex text-secondary items-center"},at={class:"text-secondary performance"},st={class:"flex items-center"},nt={class:"ml-2rem"},ot={class:"my-[12px]"},lt={class:"flex text-secondary items-center"},rt={class:"flex text-secondary items-center"},it={class:"flex text-secondary items-center"},ut={class:"flex"},dt={class:"flex items-center"},mt=_e({__name:"index",props:{compData:{default:{}}},setup(e){const{compData:s}=Z(q()),c=e,V=fe("popupClose",()=>{});return ve(()=>{ee(c.compData),s.value.refreshEvent=async()=>{const k=await Ne("redis");s.value.status=k.status}}),(k,t)=>{const d=be,S=de,I=me,y=ge,b=ke,U=we,te=Ie,h=xe,ae=Ce,se=De,O=Ve,w=Se,$=Re,ne=Te,oe=Ee,le=pe,R=ye("bt-loading");return p(),v("div",null,[a(le,{modelValue:n(T),"onUpdate:modelValue":t[8]||(t[8]=l=>M(T)?T.value=l:null),type:"left-bg-card",position:"left",class:"h-full",onChange:t[9]||(t[9]=l=>n(Ye)(l,n(V)))},{default:o(()=>[a(d,{label:"服务",name:"service"},{default:o(()=>[r("div",null,[a(Be),a(he)])]),_:1}),a(d,{label:"版本切换",name:"version"},{default:o(()=>[r("div",tt,[r("span",null,"当前版本: "+N(n(W)),1)]),a(S,{options:[{content:"如需安装其他版本redis,请保存当前数据后卸载,重新选择redis进行安装"}],class:"mt-[2rem]"})]),_:1}),a(d,{label:"性能调整",name:"performance",lazy:!0},{default:o(()=>[E((p(),v("div",at,[a(U,{class:"performance-form","label-position":"right","label-width":"90px"},{default:o(()=>[(p(!0),v(j,null,H(n(D),(l,B)=>(p(),L(y,{label:l.name,key:B},{default:o(()=>[r("div",st,[a(I,{modelValue:l.value,"onUpdate:modelValue":x=>l.value=x,width:"12rem",class:"!w-12rem"},null,8,["modelValue","onUpdate:modelValue"]),r("span",nt,N(l.ps),1)])]),_:2},1032,["label"]))),128)),a(y,{label:" ",class:"mt-[2rem]"},{default:o(()=>[a(b,{type:"primary",onClick:n(We)},{default:o(()=>[...t[10]||(t[10]=[g("保存",-1)])]),_:1},8,["onClick"]),a(b,{onClick:t[0]||(t[0]=l=>n(Ke)("restart"))},{default:o(()=>[...t[11]||(t[11]=[g("重启服务",-1)])]),_:1})]),_:1})]),_:1}),t[12]||(t[12]=r("div",{class:"ml-[1rem] mt-[1rem]"},"* 修改配置后需要重启redis生效,若您的数据需要持久化请先执行save操作。",-1)),t[13]||(t[13]=r("div",{class:"ml-[1rem] mt-[1rem]"},"* bind 仅可填写本机网卡 IP,错误配置可能导致 Redis 启动失败。",-1)),t[14]||(t[14]=r("div",{class:"ml-[1rem] mt-[1rem]"},"* 0.0.0.0 表示对所有网络地址监听,请确认已限制访问来源以避免安全风险。",-1)),t[15]||(t[15]=r("div",{class:"ml-[1rem] mt-[1rem] text-danger"},"* 请勿开启Redis外网访问权限,未限制访问IP的情况下极大概率导致服务器被入侵。",-1))])),[[R,n(m)]])]),_:1}),a(d,{label:"配置文件",name:"config",lazy:!0},{default:o(()=>[E((p(),v("div",null,[t[17]||(t[17]=r("span",{class:"my-[4px] text-secondary"}," 提示:Ctrl+F 搜索关键字,Ctrl+S 保存,Ctrl+H 查找替换 ",-1)),r("div",ot,[a(te,{class:"!h-[39rem] !w-full",modelValue:n(C),"onUpdate:modelValue":t[1]||(t[1]=l=>M(C)?C.value=l:null),id:"configContent",onSave:n(z)},null,8,["modelValue","onSave"])]),a(b,{type:"primary",onClick:n(z)},{default:o(()=>[...t[16]||(t[16]=[g("保存",-1)])]),_:1},8,["onClick"]),a(S,{options:n(et)},null,8,["options"])])),[[R,n(m)]])]),_:1}),a(d,{label:"负载状态",name:"state",lazy:!0},{default:o(()=>[E((p(),v("div",null,[a(ae,{data:n(Y),"max-height":"520"},{default:o(()=>[a(h,{prop:"key",label:"字段",width:"180"}),a(h,{prop:"value",label:"当前值",width:"100"}),a(h,{prop:"name",label:"说明"})]),_:1},8,["data"])])),[[R,n(m)]])]),_:1}),a(d,{label:"设置持久化",name:"storage",lazy:!0},{default:o(()=>[E((p(),v("div",null,[r("div",lt,[t[19]||(t[19]=r("span",{class:"mr-1rem"},"持久化文件存储路径",-1)),a(se,{icon:"icon-file_mode",onIconClick:n(Je),width:"22rem",modelValue:n(i).path,"onUpdate:modelValue":t[2]||(t[2]=l=>n(i).path=l),class:"!w-22rem"},null,8,["onIconClick","modelValue"]),a(b,{class:"ml-[12px]",onClick:t[3]||(t[3]=l=>n(F)("dir")),type:"primary"},{default:o(()=>[...t[18]||(t[18]=[g("保存",-1)])]),_:1})]),a(S,{options:[{content:"设置后将在选择的目录下新建redis_cache目录并赋予redis权限"}],class:"pl-2rem mt-[1rem]"}),a(O),t[24]||(t[24]=r("span",{class:"text-default text-base"},"AOF持久化",-1)),r("div",rt,[a(U,null,{default:o(()=>[a(y,{label:"appendonly"},{default:o(()=>[a($,{modelValue:n(i).appendonly,"onUpdate:modelValue":t[4]||(t[4]=l=>n(i).appendonly=l),width:"16rem",class:"!w-16rem"},{default:o(()=>[a(w,{label:"开启",value:"yes"}),a(w,{label:"关闭",value:"no"})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:"appendfsync"},{default:o(()=>[a($,{modelValue:n(i).appendfsync,"onUpdate:modelValue":t[5]||(t[5]=l=>n(i).appendfsync=l),width:"16rem",class:"!w-16rem"},{default:o(()=>[a(w,{label:"always",value:"always"}),a(w,{label:"everysec",value:"everysec"}),a(w,{label:"no",value:"no"})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:" "},{default:o(()=>[a(b,{onClick:t[6]||(t[6]=l=>n(F)("aof")),type:"primary"},{default:o(()=>[...t[20]||(t[20]=[g("保存",-1)])]),_:1})]),_:1})]),_:1})]),a(O),t[25]||(t[25]=r("div",{class:"text-default text-base mb-[1rem]"},"RDB持久化",-1)),r("div",it,[a(U,null,{default:o(()=>[(p(!0),v(j,null,H(n(i).rdb,(l,B)=>(p(),L(y,{key:B,label:""},{default:o(()=>[r("div",ut,[a(I,{modelValue:l.time,"onUpdate:modelValue":x=>l.time=x,width:"8rem",class:"!w-8rem",type:"number"},null,8,["modelValue","onUpdate:modelValue"]),t[21]||(t[21]=r("span",{class:"mx-[4px]"},"秒内, 插入",-1)),a(I,{modelValue:l.keys,"onUpdate:modelValue":x=>l.keys=x,width:"8rem",class:"!w-8rem",type:"number"},null,8,["modelValue","onUpdate:modelValue"]),t[22]||(t[22]=r("span",{class:"mx-[4px]"},"条数据",-1))])]),_:2},1024))),128))]),_:1})]),r("div",dt,[a(b,{class:"ml-[12px]",onClick:t[7]||(t[7]=l=>n(F)("rdb")),type:"primary"},{default:o(()=>[...t[23]||(t[23]=[g("保存",-1)])]),_:1}),a(S,{options:[{content:"符合任意一个条件将会触发RDB持久化"}],class:"pl-2rem"})])])),[[R,n(m)]])]),_:1}),a(d,{label:"日志",name:"logs"},{default:o(()=>[a(ne,{title:"全屏查看日志",content:n(K),autoScroll:!0,isHtml:!0,style:"height:500px",refresh:n(X)},null,8,["content","refresh"])]),_:1}),a(d,{name:"jump"},{label:o(()=>[a(oe,{content:"点击跳转至数据库--Redis页面",placement:"right"},{default:o(()=>[...t[26]||(t[26]=[r("div",{class:"flex items-center"}," Redis管理 ",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}}}),Rt=ce(mt,[["__scopeId","data-v-a51cd71f"]]);export{Rt as default};