redis缓存池使用

Redis

Redis里存储的数据是key、value键值对的格式,如果我们同时有多个请求访问redis拿数据,但同时要保证数据不重复,这里我们采用set形式(value不重复,string类型的key值对应数组类型的value,数组里可放置多个string类型的数据)


package ipv4pool

import (
	"context"
	"fmt"
	"time"
	"amber/db"

	"github.com/go-redis/redis"
	"github.com/sirupsen/logrus"
)

var Pool *ipv4Pool

const (
	ipv4PoolKey = "ipv4_pool"    //设置redis的key
	ipv4Capacity   = 255         //设置redis里value的最大长度
	getTimeout     = 5 * time.Second    //超时时间
	expire = 24                       //过期时间                         
)    

type ipv4Pool struct {
   
   
	cap      int
	client   *redis.Client
	isUpdate chan bool
	ctx      context.Context
}

// 初始化redis数据库
func NewCache(addr string) (*redis.Client, error) {
   
   
	c := redis.NewClient(&redis.Options{
   
   
		Addr: addr})
	_, err := c.Ping().Result()
	if err != nil {
   
   
		return nil, err
	}
	return c, err
}

// 初始化连接池pool
func Init(addr string, ctx context.Context) (err error) {
   
   
	c, err := NewCache(addr)
	if err != nil {
   
   
		logrus.WithError(err).Error("can not init ipv4 pool redis client")
		return err
	}

	Pool = &ipv4Pool{
   
   
		client
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值