Pythonはどうやってdocker redisを操作しますか?
操作コマンドを使ってsubprocessモジュールを使って操作します。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
#encoding:utf-8
import subprocess
def cmd(command):
subp = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8")
subp.wait(2)
if subp.poll() == 0:
return subp.communicate()
else:
return None
redis
def get_output(command):
subp = subprocess.getoutput(command)
return subp
flashkフレームはdockerの中のredisのキーを取得します。
@ui_case_set.route("/get_code", methods=["GET"])
@allow_cross_domain
def get_code():
set_id = request.values.get("id")
if not set_id:
return response_fail(msg=" id")
key_name = "key" + str(set_id)
value_name = get_output("docker exec {0} redis-cli get {1}".format(DockerConfig.container_redis_name, key_name))
if value_name:
return response_fail(msg=" {} !".format(" "))
else:
return response_success(msg=" !")
flashkフレームの追加とdockerの中のredisのキーの値を削除します。
@ui_case_set.route("/time_limit", methods=["POST"])
@allow_cross_domain
def set_time():
# lock: 1: , 0 :
set_id = request.json.get("id")
locak = request.json.get("lock")
# if not all([set_id, locak]):
# return response_fail(msg=" ")
key_name = "key" + str(set_id)
if locak == 1:
value_name = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
cmd("docker exec {0} redis-cli setex {1} 300 '{2}'".format(DockerConfig.container_redis_name, key_name, value_name))
return response_success(content={"lock_status": 1}, msg=" {} ".format(set_id))
else:
cmd("docker exec {0} redis-cli del {1}".format(DockerConfig.container_redis_name, key_name))
return response_success(content={"lock_status": 0}, msg=" {} ".format(set_id))
注意点:操作コマンドを使う時は「-it」を持たないでください。redis(docker容器名)redis-cli set key valeでないと、インターフェースはフロントで正常にアクセスできます。pythonプログラムのバックグラウンドで実行に失敗しました。指定-itはインタラクティブモードを開く必要がある端末です。以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。