redis_operator.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import redis
  2. import sys
  3. import os
  4. import re
  5. abspath = os.path.abspath(__file__)
  6. root_path = re.sub(r"tendata-warehouse.*", "tendata-warehouse", abspath)
  7. sys.path.append(root_path)
  8. class RedisOperator:
  9. def __init__(self, host, port=6379, db=0, password=None):
  10. self.redis_client = redis.Redis(host=host, port=port, db=db, password=password)
  11. def get_hash_table_all(self, table_name):
  12. """
  13. 获取哈希表的所有字段和值
  14. :param table_name: 哈希表名称
  15. :return: 哈希表的所有字段和值,以字典形式返回
  16. """
  17. return self.redis_client.hgetall(table_name)
  18. def get_hash_table_field(self, table_name, field):
  19. """
  20. 获取哈希表的指定字段
  21. :param table_name: 哈希表名称
  22. :param field: 字段名称
  23. :return: 指定字段的值
  24. """
  25. return self.redis_client.hget(table_name, field)
  26. def zadd_batch(self, zset_name, mapping):
  27. """
  28. 批量插入有序集合 ZSET 中的多个成员和分数
  29. :param zset_name: 有序集合名称
  30. :param mapping: 包含多个成员和分数的字典
  31. :return: 插入成功的成员数量
  32. """
  33. return self.redis_client.zadd(zset_name, mapping)
  34. def delete_zset(self, zset_name):
  35. """
  36. 删除整个有序集合 ZSET
  37. :param zset_name: 有序集合名称
  38. :return: True if the key was removed, False if the key does not exist
  39. """
  40. return self.redis_client.delete(zset_name) > 0
  41. if __name__ == '__main__':
  42. redis_host = '192.168.30.1'
  43. redis_port = 8000
  44. redis_db = 10
  45. redis_password = '111111'
  46. redis_operator = RedisOperator(redis_host, redis_port, redis_db, redis_password)
  47. # 示例:批量插入有序集合 ZSET
  48. zset_name = 'my_test_zset1'
  49. mapping = {'member1': 10, 'member2': 20, 'member3': 30}
  50. result = redis_operator.zadd_batch(zset_name, mapping)
  51. print(f"Inserted {result} members into {zset_name}")