Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 1.99 KB

redis.md

File metadata and controls

47 lines (33 loc) · 1.99 KB

这段代码是用于处理 Redis 数据库连接的 Go 语言代码。下面是详细解读:

包定义和导入

  • package db:定义了包名为 db
  • 导入的依赖包括:
    • BeeScan-scan/pkg/config:自定义包,用于获取全局配置。
    • log2 "BeeScan-scan/pkg/log":自定义日志包,用于记录日志。
    • github.com/go-redis/redis:Redis 客户端库。
    • os:操作系统包,用于退出程序。
    • time:时间包,用于设置超时时间。

注释

  • 注释部分提供了创建人员、创建时间和程序功能的说明。

函数定义

  1. InitRedis

    • 功能:初始化 Redis 连接。
    • 实现:
      • 使用 redis.NewClient 函数创建一个新的 Redis 客户端实例。
      • 通过 config.GlobalConfig.DBConfig.Redis 获取 Redis 的主机、端口、密码和数据库编号。
      • 使用 conn.Ping().Result() 发送一个 PING 命令到 Redis 服务器,检查连接是否成功。
      • 如果连接失败,记录错误日志并使用 os.Exit(1) 退出程序。
      • 如果连接成功,返回 Redis 客户端实例。
  2. CheckRedisConnect

    • 功能:检查 Redis 连接是否有效。
    • 实现:
      • 使用 conn.Ping().Result() 发送 PING 命令到 Redis 服务器。
      • 如果命令执行失败,返回 false
      • 如果命令执行成功且返回 "PONG",返回 true
  3. RecvJob

    • 功能:从 Redis 的消息队列中接收任务。
    • 实现:
      • 使用 c.BLPop(3*time.Second, config.GlobalConfig.NodeConfig.NodeQueue) 从指定的消息队列中阻塞获取一个元素。阻塞时间为 3 秒。
      • 返回获取到的元素值。

总结

这段代码提供了 Redis 连接的初始化、连接检查和从消息队列接收任务的功能。通过 InitRedis 函数可以建立与 Redis 服务器的连接,CheckRedisConnect 函数用于检查连接是否有效,而 RecvJob 函数则用于从 Redis 的消息队列中获取任务。