gin封装go-redis

安装

go get github.com/redis/go-redis/v9

go get -u github.com/gin-gonic/gin

redis封装

package config

import (
	"context"
	"errors"
	"fmt"
	"time"

	"github.com/redis/go-redis/v9"
)

var ctx = context.Background()
var rdb *redis.Client

func init() {

	rdb = redis.NewClient(&redis.Options{
		Addr:     "localhost:6379", // Redis 服务器地址
		Password: "",               // 没有密码则留空
		DB:       0,                // 使用默认数据库
		// PoolSize:        1000,             // 连接池最大连接数量
		// MinIdleConns:    100,              // 连接池保持的最小空闲连接数
		// ConnMaxIdleTime: 10 * time.Minute, //最大空闲时间,超过这个时间将被关闭
	})

	// 测试连接
	pong, err := rdb.Ping(ctx).Result()
	if err != nil {
		fmt.Println("无法连接到 Redis:", err)
		return
	}
	fmt.Println("连接成功:", pong)

}

// 存储
func SetKey(key, value string, ex int64) error {
	err := rdb.Set(ctx, key, value, time.Duration(ex)*time.Second).Err()
	if err != nil {
		//fmt.Println("设置键失败:", err)
		return err
	}
	return nil
}

// 获取
func GetKey(key string) (string, error) {
	val, err := rdb.Get(ctx, key).Result()
	if err == redis.Nil {
		//fmt.Println("键不存在:", key)
		err = errors.New("key does not exists")
		return "", err
	} else if err != nil {
		//fmt.Println("获取键失败:", err)
		return "", err
	}
	return val, nil
}

// 删除
func DelKey(key string) error {
	err := rdb.Del(ctx, key).Err()
	if err != nil {
		//fmt.Println("删除失败:", err)
		return err
	}
	return nil
}

使用 

package main

import (
	"fmt"
	"godb/config"

	"github.com/gin-gonic/gin"
)

func main() {

	gin.SetMode(gin.ReleaseMode) // 设置为 Release 模式
	r := gin.Default()

	//redis使用
	r.GET("/sz", func(c *gin.Context) {
		// 设置键值
		err := config.SetKey("name", "Go Redis", 60)
		if err != nil {
			fmt.Println("设置键失败:", err)
		}
	})

	r.GET("/hq", func(c *gin.Context) {
		// 获取键值
		val, err := config.GetKey("name")
		if err != nil {
			fmt.Println("获取键失败:", err)
			return
		}
		//fmt.Println(val)
		c.JSON(200, val)
	})

	r.GET("/sc", func(c *gin.Context) {
		// 获取键值
		err := config.DelKey("name")
		if err != nil {
			fmt.Println("删除失败:", err)
		}
	})

	r.Run()

}

代码示例 

gin封装redis: gin封装redisicon-default.png?t=O83Ahttps://gitee.com/alsark/gin-encapsulation-redis.git

B站视频讲解

https://www.bilibili.com/video/BV1r5UZYbEm7/?share_source=copy_web&vd_source=b0fd8606714c39dabe78b6604aff44a3icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1r5UZYbEm7/?share_source=copy_web&vd_source=b0fd8606714c39dabe78b6604aff44a3 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值