redis.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import redis
  2. class SyncRedisHelper:
  3. _pool: redis.ConnectionPool = None
  4. _instance = None
  5. def __init__(self):
  6. if not self._instance:
  7. self._pool = self._get_pool()
  8. self._instance = self
  9. def _get_pool(self) -> redis.ConnectionPool:
  10. if self._pool is None:
  11. self._pool = redis.ConnectionPool(
  12. # host="r-bp1mb0v08fqi4hjffupd.redis.rds.aliyuncs.com", # 外网地址
  13. host="r-bp1mb0v08fqi4hjffu.redis.rds.aliyuncs.com", # 内网地址
  14. port=6379,
  15. db=0,
  16. password="Wqsd@2019",
  17. # password="Qingqu2019",
  18. )
  19. return self._pool
  20. def get_client(self) -> redis.Redis:
  21. pool = self._get_pool()
  22. client = redis.Redis(connection_pool=pool)
  23. return client
  24. def close(self):
  25. if self._pool:
  26. self._pool.disconnect(inuse_connections=True)
  27. def get_data(name, data):
  28. task = f"task:{name}"
  29. lock = f"lock:{name}"
  30. helper = SyncRedisHelper()
  31. client = helper.get_client()
  32. if not client.exists(task):
  33. acquire_lock = client.set(lock, 1, ex=120, nx=True)
  34. if not acquire_lock:
  35. return None
  36. client.rpush(task, *data)
  37. ret = client.lpop(task)
  38. if name == 'pl-gjc':
  39. client.rpush(task, ret)
  40. return ret
  41. """抖音搜索计数插入"""
  42. def increment_key():
  43. helper = SyncRedisHelper()
  44. client = helper.get_client()
  45. client.incrby('dyss-count', 1)
  46. """抖音搜索计数获取"""
  47. def get_first_value_with_prefix():
  48. helper = SyncRedisHelper()
  49. client = helper.get_client()
  50. value = client.get("dyss-count")
  51. return int(value) if value is not None else 1
  52. def del_dyss_redis_key():
  53. helper = SyncRedisHelper()
  54. client = helper.get_client()
  55. client.delete("dyss-count")
  56. def get_redis_video_data(video_id):
  57. lock = f"video_lock:{video_id}"
  58. helper = SyncRedisHelper()
  59. client = helper.get_client()
  60. acquire_lock = client.set(lock, 1, ex=600, nx=True)
  61. if not acquire_lock:
  62. return True
  63. return False