redis_db.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/env python3
  2. # -*- coding:utf-8 -*-
  3. import redis
  4. from config import load_config
  5. cfgs = load_config()
  6. class RedisDatabaseHelper:
  7. _instance = None
  8. def __new__(cls):
  9. if not cls._instance:
  10. cls._instance = super(RedisDatabaseHelper, cls).__new__(cls)
  11. cls._instance._initialized = False
  12. return cls._instance
  13. def __init__(self):
  14. if self._initialized:
  15. return
  16. self.redis = redis.StrictRedis(host=cfgs['redis']['host'],
  17. port=cfgs['redis']['port'],
  18. password=cfgs['redis']['passwd'],
  19. db=cfgs['redis']['db'],
  20. decode_responses=True)
  21. self._initialized = True
  22. if __name__ == '__main__':
  23. import random
  24. # 连接到 Redis 服务器
  25. r = RedisDatabaseHelper().redis
  26. # 有序集合的键名
  27. zset_key = 'configs:hotkeys'
  28. data_list = ['ORDER_FULLORDR_RATE', 'MONTH6_SALE_QTY_YOY', 'MONTH6_SALE_QTY_MOM', 'MONTH6_SALE_QTY']
  29. # 清空已有的有序集合(可选,若需要全新的集合可执行此操作)
  30. r.delete(zset_key)
  31. for item in data_list:
  32. # 生成 80 到 100 之间的随机数,小数点后保留 4 位
  33. score = round(random.uniform(80, 100), 4)
  34. # 将元素和对应的分数添加到有序集合中
  35. r.zadd(zset_key, {item: score})
  36. # # 从 Redis 中读取有序集合并打印
  37. # result = r.zrange(zset_key, 0, -1, withscores=True)
  38. # for item, score in result:
  39. # print(f"元素: {item}, 分数: {score}")