import redis import sys import os import re abspath = os.path.abspath(__file__) root_path = re.sub(r"tendata-warehouse.*", "tendata-warehouse", abspath) sys.path.append(root_path) class RedisOperator: def __init__(self, host, port=6379, db=0, password=None): self.redis_client = redis.Redis(host=host, port=port, db=db, password=password) def get_hash_table_all(self, table_name): """ 获取哈希表的所有字段和值 :param table_name: 哈希表名称 :return: 哈希表的所有字段和值,以字典形式返回 """ return self.redis_client.hgetall(table_name) def get_hash_table_field(self, table_name, field): """ 获取哈希表的指定字段 :param table_name: 哈希表名称 :param field: 字段名称 :return: 指定字段的值 """ return self.redis_client.hget(table_name, field) def zadd_batch(self, zset_name, mapping): """ 批量插入有序集合 ZSET 中的多个成员和分数 :param zset_name: 有序集合名称 :param mapping: 包含多个成员和分数的字典 :return: 插入成功的成员数量 """ return self.redis_client.zadd(zset_name, mapping) def delete_zset(self, zset_name): """ 删除整个有序集合 ZSET :param zset_name: 有序集合名称 :return: True if the key was removed, False if the key does not exist """ return self.redis_client.delete(zset_name) > 0 if __name__ == '__main__': redis_host = '192.168.30.1' redis_port = 8000 redis_db = 10 redis_password = '111111' redis_operator = RedisOperator(redis_host, redis_port, redis_db, redis_password) # 示例:批量插入有序集合 ZSET zset_name = 'my_test_zset1' mapping = {'member1': 10, 'member2': 20, 'member3': 30} result = redis_operator.zadd_batch(zset_name, mapping) print(f"Inserted {result} members into {zset_name}")