```import redis
import time
from redis import StrictRedis
from redis import WatchError
PARAM_COMMIT_RETURN_ = '''
pipeline方法:
链式调用 execute执行
redis方法pipe.set().sdd().incr().execute()
:param commit: 是否开启事务
:return:
'''
lock_conn=redis.Redis()
class RedisDemo:
def __init__(self):
self.conn=None
try:
self.conn=self.connRedis("hadoop102",6379)
print("连接成功")
except:
print("chucuo")
self.key=None
def connRedis(self,host,port,db=0):
return redis.Redis(host,port,db)
def pipeRedis(self,commit=True,):
PARAM_COMMIT_RETURN_
return self.conn.pipeline(commit)
def client_sync_pipe_commit(self):
'''
实现悲观锁事务(分布式锁1)写法
问题:
:return:
'''
#conn=StrictRedis(decode_responses=True)
self.conn.set("value11",100)
while True:
sync_lock=self.conn.setnx("locktest",1)
self.conn.expire("locktest",2)
if sync_lock:
print(sync_lock)
locked_value=self.conn.get("locktest")
#print(locked_value)
if int(str(locked_value).split("'")[1])>0:
num=self.conn.decr("value11")
print(num)
self.conn.delete("locktest")
if __name__=="__main__":
redis=RedisDemo()
#redis.testString()
redis.client_sync_pipe_commit()
python简单实现redis分布式乐观悲观锁
最新推荐文章于 2022-07-06 19:55:55 发布