redis.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import redis
  2. from common.odps_data import OdpsDataCount
  3. class SyncRedisHelper:
  4. _pool: redis.ConnectionPool = None
  5. _instance = None
  6. def __init__(self):
  7. if not self._instance:
  8. self._pool = self._get_pool()
  9. self._instance = self
  10. def _get_pool(self) -> redis.ConnectionPool:
  11. if self._pool is None:
  12. self._pool = redis.ConnectionPool(
  13. host="r-bp1mb0v08fqi4hjffupd.redis.rds.aliyuncs.com", # 外网地址
  14. # host="r-bp1mb0v08fqi4hjffu.redis.rds.aliyuncs.com", # 内网地址
  15. port=6379,
  16. db=0,
  17. password="Wqsd@2019",
  18. # password="Qingqu2019",
  19. )
  20. return self._pool
  21. def get_client(self) -> redis.Redis:
  22. pool = self._get_pool()
  23. client = redis.Redis(connection_pool=pool)
  24. return client
  25. def close(self):
  26. if self._pool:
  27. self._pool.disconnect(inuse_connections=True)
  28. def insert_job_data(REDIS_NAME):
  29. data = OdpsDataCount.main()
  30. if not data:
  31. return 0
  32. helper = SyncRedisHelper()
  33. client = helper.get_client()
  34. client.rpush(REDIS_NAME, *data)
  35. return len(data)
  36. def get_top_data(REDIS_NAME):
  37. helper = SyncRedisHelper()
  38. client = helper.get_client()
  39. ret = client.lpop(REDIS_NAME)
  40. return ret
  41. def get_llen_list(REDIS_NAME):
  42. helper = SyncRedisHelper()
  43. client = helper.get_client()
  44. length = client.llen(REDIS_NAME)
  45. return length
  46. def get_lrange_list(REDIS_NAME,count):
  47. helper = SyncRedisHelper()
  48. client = helper.get_client()
  49. elements = client.lrange(REDIS_NAME, 0, count)
  50. client.ltrim(REDIS_NAME, count, -1)
  51. return elements
  52. def in_job_video_data(REDIS_NAME, ret):
  53. helper = SyncRedisHelper()
  54. client = helper.get_client()
  55. client.rpush(REDIS_NAME, str(ret))