redis 添加性能调整功能

This commit is contained in:
midoks
2022-09-14 20:50:32 +08:00
parent 1ad9546ae4
commit b616854baa
5 changed files with 240 additions and 42 deletions
+81 -2
View File
@@ -4,6 +4,7 @@ import sys
import io
import os
import time
import re
sys.path.append(os.getcwd() + "/class/core")
import mw
@@ -47,7 +48,7 @@ def getInitDTpl():
def getArgs():
args = sys.argv[2:]
args = sys.argv[3:]
tmp = {}
args_len = len(args)
@@ -153,7 +154,19 @@ def reload():
def runInfo():
requirepass = ""
conf = getServerDir() + '/redis.conf'
content = mw.readFile(conf)
rep = "^(requirepass" + ')\s*([.0-9A-Za-z_& ~]+)'
tmp = re.search(rep, content, re.M)
if tmp:
requirepass = tmp.groups()[1]
cmd = getServerDir() + "/bin/redis-cli info"
if requirepass != "":
cmd = getServerDir() + '/bin/redis-cli -a "' + requirepass + '" info'
data = mw.execShell(cmd)[0]
res = [
'tcp_port',
@@ -202,7 +215,6 @@ def initdInstall():
def initdUinstall():
if mw.isAppleSystem():
return "Apple Computer does not support"
@@ -213,6 +225,69 @@ def initdUinstall():
def runLog():
return getServerDir() + '/data/redis.log'
def getRedisConfInfo():
conf = getServerDir() + '/redis.conf'
content = mw.readFile(conf)
gets = [
{'name': 'bind', 'type': 2, 'ps': '绑定IP(修改绑定IP可能会存在安全隐患)'},
{'name': 'port', 'type': 2, 'ps': '绑定端口'},
{'name': 'timeout', 'type': 2, 'ps': '空闲链接超时时间,0表示不断开'},
{'name': 'maxclients', 'type': 2, 'ps': '最大输入时间'},
{'name': 'databases', 'type': 2, 'ps': '数据库数量'},
{'name': 'requirepass', 'type': 2, 'ps': 'redis密码,留空代表没有设置密码'},
{'name': 'maxmemory', 'type': 2, 'ps': 'MB,最大使用内存,0表示不限制'}
]
content = mw.readFile(conf)
result = []
for g in gets:
rep = "^(" + g['name'] + ')\s*([.0-9A-Za-z_& ~]+)'
tmp = re.search(rep, content, re.M)
if not tmp:
g['value'] = ''
result.append(g)
continue
g['value'] = tmp.groups()[1]
if g['name'] == 'maxmemory':
g['value'] = g['value'].strip("mb")
result.append(g)
return result
def getRedisConf():
data = getRedisConfInfo()
return mw.getJson(data)
def submitRedisConf():
gets = ['bind', 'port', 'timeout', 'maxclients',
'databases', 'requirepass', 'maxmemory']
args = getArgs()
conf = getServerDir() + '/redis.conf'
content = mw.readFile(conf)
for g in gets:
if g in args:
rep = g + '\s*([.0-9A-Za-z_& ~]+)'
val = g + ' ' + args[g]
if g == 'maxmemory':
val = g + ' ' + args[g] + "mb"
if g == 'requirepass' and args[g] == '':
content = re.sub('requirepass', '#requirepass', content)
if g == 'requirepass' and args[g] != '':
content = re.sub('#requirepass', 'requirepass', content)
content = re.sub(rep, val, content)
if g != 'requirepass':
content = re.sub(rep, val, content)
mw.writeFile(conf, content)
reload()
return mw.returnJson(True, '设置成功')
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
@@ -237,5 +312,9 @@ if __name__ == "__main__":
print(getConf())
elif func == 'run_log':
print(runLog())
elif func == 'get_redis_conf':
print(getRedisConf())
elif func == 'submit_redis_conf':
print(submitRedisConf())
else:
print('error')