47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
/*
 | 
						||
 * Copyright 2025 coze-dev Authors
 | 
						||
 *
 | 
						||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
						||
 * you may not use this file except in compliance with the License.
 | 
						||
 * You may obtain a copy of the License at
 | 
						||
 *
 | 
						||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
						||
 *
 | 
						||
 * Unless required by applicable law or agreed to in writing, software
 | 
						||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
						||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						||
 * See the License for the specific language governing permissions and
 | 
						||
 * limitations under the License.
 | 
						||
 */
 | 
						||
 | 
						||
package redis
 | 
						||
 | 
						||
import (
 | 
						||
	"os"
 | 
						||
	"time"
 | 
						||
 | 
						||
	"github.com/redis/go-redis/v9"
 | 
						||
)
 | 
						||
 | 
						||
type Client = redis.Client
 | 
						||
 | 
						||
func New() *redis.Client {
 | 
						||
	addr := os.Getenv("REDIS_ADDR")
 | 
						||
	rdb := redis.NewClient(&redis.Options{
 | 
						||
		Addr: addr, // Redis地址
 | 
						||
		DB:   0,    // 默认数据库
 | 
						||
		// 连接池配置
 | 
						||
		PoolSize:        100,             // 最大连接数(建议设置为CPU核心数*10)
 | 
						||
		MinIdleConns:    10,              // 最小空闲连接
 | 
						||
		MaxIdleConns:    30,              // 最大空闲连接
 | 
						||
		ConnMaxIdleTime: 5 * time.Minute, // 空闲连接超时时间
 | 
						||
 | 
						||
		// 超时配置
 | 
						||
		DialTimeout:  5 * time.Second, // 连接建立超时
 | 
						||
		ReadTimeout:  3 * time.Second, // 读操作超时
 | 
						||
		WriteTimeout: 3 * time.Second, // 写操作超时
 | 
						||
	})
 | 
						||
 | 
						||
	return rdb
 | 
						||
}
 |