Redis


go-redis/redis를 사용하는 Redis 스토리지 드라이버입니다.

참고: Go 1.19 이상이 필요합니다

Table of Contents

  • Signatures

  • Installation

  • Examples

  • Config

  • Default Config

Signatures

func New(config ...Config) Storage
func (s *Storage) Get(key string) ([]byte, error)
func (s *Storage) Set(key string, val []byte, exp time.Duration) error
func (s *Storage) Delete(key string) error
func (s *Storage) Reset() error
func (s *Storage) Close() error
func (s *Storage) Conn() redis.UniversalClient
func (s *Storage) Keys() ([][]byte, error)

Installation

Redis는 모듈 지원과 함께 Go versions 중 최신 2개 버전에서 테스트되었습니다. 아직 초기화하지 않았다면 먼저 초기화해야 합니다:

go mod init github.com/<user>/<repo>

그런 다음 redis 구현체를 설치합니다:

go get github.com/gofiber/storage/redis/v3

Examples

스토리지 패키지를 가져옵니다.

import "github.com/gofiber/storage/redis/v3"

다음 옵션 중 하나를 사용하여 Redis 스토리지를 생성할 수 있습니다:

// 기본 설정 초기화
store := redis.New()

// 사용자 지정 설정 초기화 
store := redis.New(redis.Config{
	Host:      "127.0.0.1", 
	Port:      6379,
	Username:  "",
	Password:  "",
	Database:  0,
	Reset:     false,
	TLSConfig: nil,  
	PoolSize:  10 * runtime.GOMAXPROCS(0),
})

// Redis 장애조치 클라이언트 초기화
store := redis.New(redis.Config{
	MasterName:       "master-name",
	Addrs:            []string{":6379"},  
})

// Redis 클러스터 클라이언트 초기화
store := redis.New(redis.Config{
	Addrs:            []string{":6379", ":6380"},
})

// TLS 지원이 있는 클라이언트 생성
cer, err := tls.LoadX509KeyPair("./client.crt", "./client.key")
if err != nil {
	log.Println(err)
	return
}
tlsCfg := &tls.Config{
	MinVersion:               tls.VersionTLS12,
	InsecureSkipVerify:       true,
	Certificates:             []tls.Certificate{cer},
}  
store = redis.New(redis.Config{
	URL:     	"redis://<user>:<pass>@127.0.0.1:6379/<db>",
	TLSConfig: 	tlsCfg,
	Reset:    	false,
})

// 모든 정보가 있는 Redis URL을 사용하여 클라이언트 생성
store = redis.New(redis.Config{
	URL:     "redis://<user>:<pass>@127.0.0.1:6379/<db>",
	Reset:    false,  
})

Config

type Config struct {
	// DB가 호스팅되는 호스트 이름
	// 
	// 선택 사항. 기본값은 "127.0.0.1"
	Host string
	
	// DB가 수신 대기 중인 포트
	//
	// 선택 사항. 기본값은 6379  
	Port int

	// 서버 사용자 이름
	// 
	// 선택 사항. 기본값은 ""
	Username string

	// 서버 비밀번호
	//
	// 선택 사항. 기본값은 ""
	Password string

	// 서버에 연결한 후 선택할 데이터베이스
	//
	// 선택 사항. 기본값은 0
	Database int

	// 표준 형식 Redis URL. 이 값이 설정되면 다른 모든 설정 옵션인 Host, Port, Username, Password, Database는 영향을 미치지 않습니다. 
	//
	// 예: redis://<user>:<pass>@localhost:6379/<db>
	// 선택 사항. 기본값은 "" 
	URL string

	// 단일 주소 또는 host:port 주소의 시드 목록이며, FailoverClient와 ClusterClient를 활성화합니다.
	//  
	// 선택 사항. 기본값은 []string{}
	Addrs []string
	
	// Sentinel 마스터의 이름
	//
	// 선택 사항. 기본값은 ""
	MasterName string

	// 각 연결에 대해 `CLIENT SETNAME ClientName` 명령을 실행합니다.  
	//
	// 선택 사항. 기본값은 ""
	ClientName string
	
	// SentinelUsername
	// 
	// 선택 사항. 기본값은 ""
	SentinelUsername string

	// SentinelPassword 
	//
	// 선택 사항. 기본값은 ""
	SentinelPassword string

	// 기존 컬렉션의 기존 키를 지웁니다.
	// 
	// 선택 사항. 기본값은 false
	Reset bool

	// 사용할 TLS 설정. 설정하면 TLS가 협상됩니다.
	//
	// 선택 사항. 기본값은 nil 
	TLSConfig *tls.Config

	// 최대 소켓 연결 수
	//
	// 선택 사항. 기본값은 runtime.GOMAXPROCS에서 보고한 사용 가능한 CPU마다 10개 연결  
	PoolSize int
}

Default Config

var ConfigDefault = Config{
	Host:                  "127.0.0.1",
	Port:                  6379,
	Username:              "",
	Password:              "", 
	URL:                   "",
	Database:              0,
	Reset:                 false,
	TLSConfig:             nil,
	PoolSize:              10 * runtime.GOMAXPROCS(0),
	Addrs:                 []string{},
	MasterName:            "",
	ClientName:            "",  
	SentinelUsername:      "",
	SentinelPassword:      "",
}

Last updated