查询redis 操作的脚本
是在哨兵模式下,先通过master,确定slave节点的地址,再操作slave的redis的方式。
# redis操作脚本
import redis
from redis.sentinel import Sentinel
def getAllMasters(host, port):
# 获取redis集群各个节点信息
sentinel_obj = redis.Redis(host=host, port=port)
my_sentinel = sentinel_obj.sentinel_masters()
return my_sentinel
def getSlaveInfo(host, port, slaveName):
slaveInfo = getAllMasters(host,port)[slaveName]
return slaveInfo["ip"] , slaveInfo["port"]
def getRedisItem(masterHost,masterPost, slaveName, key):
slaveHost , slavePort = getSlaveInfo(masterHost,masterPost,slaveName)
r = redis.Redis(host=slaveHost, port=slavePort, decode_responses=True)
print(r.get(key))
def deleteRedisItem(masterHost,masterPost, slaveName, key):
slaveHost , slavePort = getSlaveInfo(masterHost,masterPost,slaveName)
r = redis.Redis(host=slaveHost, port=slavePort, decode_responses=True)
print(f"{key} 删之前 -> \n {r.get(key)}")
r.delete(key)
print(f"{key} 删之后 -> \n {r.get(key)}")
def billingCenterRedis():
#账单
masterHost = "172.xx.xx.xx"
masterPost = 26379
slaveName = "test"
slaveHost, slavePort = getSlaveInfo(masterHost,masterPost,slaveName)
return redis.Redis(host=slaveHost, port=slavePort, decode_responses=True)
def account2Redis():
#注册
masterHost = "172.xx.xx.xxx"
masterPost = 26379
slaveName = "account2.0"
return redis.Redis(host=slaveHost, port=slavePort, decode_responses=True)
if __name__ == '__main__':
key = "PAY_CHANNEL_xxxxxxxxxxxx"
print(billingCenterRedis().get(key))
billingCenterRedis().delete(key)
print(billingCenterRedis().get(key))