# redis-pool **Repository Path**: tym_hmm/redis-pool ## Basic Information - **Project Name**: redis-pool - **Description**: redis 连接池封装 通过model继承处理, 提高解耦性, 一键切换集群与单机, 无需修改代码 - **Primary Language**: Go - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2022-03-15 - **Last Updated**: 2023-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### go-redis 处理封装组件 #### 功能 * 通过参数设置自动切换集群或单机操作 * 统一通过model 集成方式处理,避免代码过说臃肿 * 使用redis 链接池操作 * 规范化处理redis, 避免redis操作过乱 #### 使用组件 > 使用golang redis组件 ``` github.com/go-redis/redis ``` #### 获取当前组件方式 ```cassandraql go get -u gitee.com/tym_hmm/redis-pool ``` #### 使用说明 > 1、初始化redis 连接 ``` //builder := Redis.NewRedisBuilder(<是否是集群>, <服务地址:端口>[多个以,分隔], <密码>, <数据库>[集默认填写0]) builder := Redis.NewRedisBuilder(true, "192.168.1.169:6491", "fn123456", 0) redisPool := Redis.NewRedisPool().SetBuilder(builder) err := redisPool.Init() if err != nil { fmt.Println(err) os.Exit(1) } ``` > 2、model继承成并操作redis, 通过rmt.GetClient() 获取redis客户端对象 ``` type RedisModelTest struct { Redis.BaseRedisModel } func (rmt *RedisModelTest) SetItem() error { client, err := rmt.GetClient() if err != nil { return err } result := client.Set("aaaa", "bbbb", 0) _, err = result.Result() if err != nil { return err } return nil } func (rmt *RedisModelTest) GetItem() (string, error) { client, err := rmt.GetClient() if err != nil { return "", err } result := client.Get("aaaa") val, err := result.Result() if err != nil { return "", err } return val, nil } ``` 3、使用model 对外使用 ``` var testModel RedisModelTest err:=testModel.SetItem() if err !=nil{ fmt.Println("xxx1",err) }else{ val, err:=testModel.GetItem() if err !=nil{ fmt.Println("xxx2", err) }else{ fmt.Println("获取值", val) } } ```