Redis
Last updated
Last updated
go-redis/redis를 사용하는 Redis 스토리지 드라이버입니다.
참고: Go 1.19 이상이 필요합니다
Signatures
Installation
Examples
Config
Default Config
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)
Redis는 모듈 지원과 함께 Go versions 중 최신 2개 버전에서 테스트되었습니다. 아직 초기화하지 않았다면 먼저 초기화해야 합니다:
go mod init github.com/<user>/<repo>
그런 다음 redis 구현체를 설치합니다:
go get github.com/gofiber/storage/redis/v3
스토리지 패키지를 가져옵니다.
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,
})
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
}
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: "",
}