1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import redis
- from datetime import timedelta
- class SyncRedisHelper:
- _pool: redis.ConnectionPool = None
- _instance = None
- def __init__(self):
- if not self._instance:
- self._pool = self._get_pool()
- self._instance = self
- def _get_pool(self) -> redis.ConnectionPool:
- if self._pool is None:
- self._pool = redis.ConnectionPool(
- # host="r-bp1mb0v08fqi4hjffu.redis.rds.aliyuncs.com", # 内网地址
- host="r-bp1mb0v08fqi4hjffupd.redis.rds.aliyuncs.com", # 外网地址
- port=6379,
- db=0,
- password="Wqsd@2019",
- # password="Qingqu2019",
- )
- return self._pool
- def get_client(self) -> redis.Redis:
- pool = self._get_pool()
- client = redis.Redis(connection_pool=pool)
- return client
- def close(self):
- if self._pool:
- self._pool.disconnect(inuse_connections=True)
- def get_data(name, data):
- key = f"task:{name}"
- helper = SyncRedisHelper()
- client = helper.get_client()
- if not client.exists('wangxueke-task'):
- acquire_lock = client.set('wangxueke-lock', 1, ex=600, nx=True)
- if not acquire_lock:
- return
- data = [{}, {}, {}]
- client.rpush('wangxueke-task', *data)
- return client.lpop('wangxueke-task')
- value = get_data('xiaoniangao', '1234857')
- if value is None:
- print("Value does not exist")
- else:
- print(f"Retrieved value: {value}")
|