redis.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # -*- coding: utf-8 -*-
  2. """统一 Redis 客户端工厂。
  3. 替代原 interface/settings.py 与 common/source.py 中分散的 Redis 连接代码。
  4. 所有 Redis 连接经此模块,配置走 infra/config.py。
  5. """
  6. from __future__ import absolute_import
  7. import redis
  8. from . import config
  9. __all__ = [
  10. "get_main_redis",
  11. "get_baseline_redis",
  12. "get_error_att_redis",
  13. "redis_main_config",
  14. "queue_names",
  15. "consumer_params",
  16. ]
  17. def get_main_redis():
  18. """主 Redis(队列模式业务库,原 settings.REDIS_DB=12)。"""
  19. cfg = config.redis_main_config()
  20. return redis.StrictRedis(
  21. host=cfg.get("host", "127.0.0.1"),
  22. port=int(cfg.get("port", 6379)),
  23. db=int(cfg.get("db", 12)),
  24. password=cfg.get("password", ""),
  25. )
  26. def get_baseline_redis():
  27. """基线 Redis(原 common/source.py::getConnect_redis_baseline,db=6)。"""
  28. cfg = config.redis_main_config()
  29. return redis.StrictRedis(
  30. host=cfg.get("host", "127.0.0.1"),
  31. port=int(cfg.get("port", 6379)),
  32. db=int(config.get_redis_config().get("baseline", {}).get("db", 6)),
  33. password=cfg.get("password", ""),
  34. )
  35. def get_error_att_redis():
  36. """附件过滤 Redis(原 common/source.py::getConnect_redis_error_att,db=10)。"""
  37. cfg = config.redis_main_config()
  38. return redis.StrictRedis(
  39. host=cfg.get("host", "127.0.0.1"),
  40. port=int(cfg.get("port", 6379)),
  41. db=int(config.get_redis_config().get("error_attachment", {}).get("db", 10)),
  42. password=cfg.get("password", ""),
  43. )
  44. def redis_main_config():
  45. """向后兼容:返回主 Redis 配置 dict。"""
  46. return config.redis_main_config()
  47. def queue_names():
  48. """队列名 dict。"""
  49. return config.redis_queue_names()
  50. def consumer_params():
  51. """消费者参数 dict。"""
  52. return config.redis_consumer_params()