Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

52 linhas
1.7KB

  1. import redis
  2. import os
  3. from config import conf
  4. # 定义全局 redis_helper
  5. redis_helper = None
  6. class RedisHelper:
  7. def __init__(self, host='localhost', port=6379, password=None ,db=0):
  8. # 初始化 Redis 连接
  9. self.client = redis.Redis(host=host, port=port,db=db,password=password)
  10. def set_hash(self, hash_key, data, timeout=None):
  11. """添加或更新哈希,并设置有效期"""
  12. self.client.hset(hash_key, mapping=data)
  13. if timeout:
  14. # 设置有效期(单位:秒)
  15. self.client.expire(hash_key, timeout)
  16. def get_hash(self, hash_key):
  17. """获取整个哈希表数据"""
  18. result = self.client.hgetall(hash_key)
  19. # 将字节数据解码成字符串格式返回
  20. return {k.decode('utf-8'): v.decode('utf-8') for k, v in result.items()}
  21. def get_hash_field(self, hash_key, field):
  22. """获取哈希表中的单个字段值"""
  23. result = self.client.hget(hash_key, field)
  24. return result.decode('utf-8') if result else None
  25. def delete_hash(self, hash_key):
  26. """删除整个哈希表"""
  27. self.client.delete(hash_key)
  28. def delete_hash_field(self, hash_key, field):
  29. """删除哈希表中的某个字段"""
  30. self.client.hdel(hash_key, field)
  31. def update_hash_field(self, hash_key, field, value):
  32. """更新哈希表中的某个字段"""
  33. self.client.hset(hash_key, field, value)
  34. def start():
  35. global redis_helper
  36. host=conf().get("redis_host")
  37. port=conf().get("redis_port")
  38. password=conf().get("redis_password")
  39. db=conf().get("redis_db")
  40. redis_helper = RedisHelper(host=host,port=port,password=password,db=db)