Go Fiber 한글 공식 문서
  • 🙇‍♀️안녕하세요
  • 🏠Home
    • 👋Welcome
    • 📁API
      • 📦Fiber
      • 🚀App
      • 🧠Ctx
      • 📋Constants
      • 🌎Client
      • 📃Log
      • 🧬Middleware
        • Adaptor
        • BasicAuth
        • Cache
        • Compress
        • CORS
        • CSRF
        • EarlyData
        • Encrypt Cookie
        • EnvVar
        • ETag
        • ExpVar
        • Favicon
        • FileSystem
        • Health Check
        • Helmet
        • Idempotency
        • Keyauth
        • Limiter
        • Logger
        • Monitor
        • Pprof
        • Proxy
        • Recover
        • Redirect
        • RequestID
        • Rewrite
        • Session
        • Skip
        • Timeout
    • 📁Guide
      • 🔌Routing
      • 🎭Grouping
      • 📝Templates
      • 🐛Error Handling
      • 🔎Validation
      • 🎣Hooks
      • ⚡Make Fiber Faster
    • 📁Extra
      • 🤔FAQ
      • 📊Benchmarks
  • 🧩Extra
    • 🧬Contrip
      • 👋Welcome
      • Casbin
      • Fgprof
      • Fiberi18n
      • Fibernewrelic
      • Fibersentry
      • Fiberzap
      • Fiberzerolog
      • JWT
      • LoadShed
      • Opafiber
      • Otelfiber
        • Example
      • Paseto
      • README
      • Swagger
      • Websocket
    • 📦Storage
      • 👋Welcome
      • ArangoDB
      • Azure Blob
      • Badger
      • Bbolt
      • Coherence
      • Couchbase
      • DynamoDB
      • Etcd
      • Memcache
      • Memory
      • Minio
      • MongoDB
      • MSSQL
      • MySQL
      • Nats
      • Pebble
      • Postgres
      • Redis
      • Ristretto
      • Rueidis
      • S3
      • ScyllaDb
      • SQLite3
    • 📃Template
      • 👋Welcome
      • Ace
      • Amber
      • Django
      • Handlebars
      • HTML
        • Golang Templates Cheatsheet
      • Jet
      • Mustache
      • Pug
      • Slim
Powered by GitBook
On this page
  • Table of Contents
  • Signatures
  • Installation
  • Examples
  • Config
  • Default Config
  1. Extra
  2. Storage

Redis

PreviousPostgresNextRistretto

Last updated 1 year ago


를 사용하는 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

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:      "",
}

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

🧩
📦
Go versions
go-redis/redis