package rediscontroll import ( "context" "flag" "fmt" "main_exam_server/config" "main_exam_server/loges" "github.com/go-redis/redis/v8" ) var ( ctx = context.Background() redisConfigFiles = flag.String("redisconfigFile", "iniconfig/redisConfig.ini", "数据库配置文件") ) //开启数据库 func RedisInit() *redis.Client { redisConfig := config.LoadRedisConfig(*redisConfigFiles) if redisConfig != nil { loges.LongInit("Redis配置文件读取错误!") } var opt = redis.Options{ Addr: config.RedisConfig.Redis_Host + ":" + config.RedisConfig.Redis_Port, Password: "", DB: config.RedisConfig.Redis_Db} var client = redis.NewClient(&opt) _, err := client.Ping(ctx).Result() if err != nil { errStr := fmt.Sprintf("连接redis出错,错误信息:%v", err) loges.LongInit(errStr) } // fmt.Printf("Redis=========>%v\n", pong) // fmt.Printf("%v======>%T", client, client) return client } /** *库操作 */ //查询Redis库当前有多少个Key func QueryKeyNumber(rdb *redis.Client) int64 { // rdb := RedisInit() num, err := rdb.DBSize(ctx).Result() if err != nil { errStr := fmt.Sprintf("数据库键数量获取错误:%v", err) loges.LongInit(errStr) return 0 } return num } //清空当前数据库 func ClearingTheTeservoir(rdb *redis.Client) bool { // rdb := RedisInit() _, err := rdb.FlushDB(ctx).Result() if err != nil { errStr := fmt.Sprintf("清空当前Redis数据库错误:%v", err) loges.LongInit(errStr) return false } return true } //清空所有Redis数据 func ClearingTheTeservoirAll(rdb *redis.Client) bool { // rdb := RedisInit() _, err := rdb.FlushAll(ctx).Result() if err != nil { errStr := fmt.Sprintf("清空当前Redis数据库错误:%v", err) loges.LongInit(errStr) return false } return true }