You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.8 KiB
78 lines
1.8 KiB
|
4 years ago
|
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
|
||
|
|
}
|