ScyllaDb
Last updated
Last updated
Fiber를 위한 gocql을 사용하는 ScyllaDb storage engine입니다.
Signatures
Installration
Examples
Config
Default Config
func New(config ...Config) Storage
func (s *Storage) Get(key string) ([]byte, error)
func (s *Storage) Set(key string, value []byte, expire time.Duration) error
func (s *Storage) Delete(key string) error
func (s *Storage) Reset() error
func (s *Storage) Close() error
func (s *Storage) Conn() *gocql.Session
ScyllaDb는 모듈을 지원하는 Go versions 2 버전에서 테스트되었습니다. 아직 초기화하지 않았다면 먼저 초기화해야 합니다:
go mod init github.com/<user>/<repo>
그런 다음 scylladb 구현을 설치합니다:
go get github.com/gofiber/storage/scylladb
storage 패키지를 가져옵니다.
import "github.com/gofiber/storage/scylladb"
다음과 같은 방법으로 storage를 생성할 수 있습니다:
// 기본 config 초기화
store := scylladb.New()
// 사용자 정의 config 초기화
store := scylladb.New(scylladb.Config{
Keyspace: "fiber",
Hosts: []string{"127.0.0.1"},
Port: 9042,
Table: "fiber_storage",
Consistency: "ONE",
Reset: false,
})
// TLS 지원 초기화 (SslOptions로 TLS 사용 구성)
//
// InsecureSkipVerify와 EnableHostVerification의 상호작용은 다음과 같습니다:
//
// |Config.InsecureSkipVerify | EnableHostVerification | 결과 |
// |--------------------------|------------------------|--------------------|
// |Config is nil | false | 호스트 검증하지 않음 |
// |Config is nil | true | 호스트 검증 |
// |false | false | 호스트 검증 |
// |true | false | 호스트 검증하지 않음 |
// |false | true | 호스트 검증 |
// |true | true | 호스트 검증 |
store := New(
Config{
Keyspace: "fiber",
Hosts: []string{"127.0.0.1"},
Port: 9042,
Table: "fiber_storage",
Consistency: "ONE",
SslOpts: &gocql.SslOptions{
Config: &tls.Config{
InsecureSkipVerify: false, // 인증서 검증을 활성화하려면 false로 설정
},
CertPath: "/path/to/client_cert.pem", // 클라이언트 인증서 경로
KeyPath: "/path/to/client_key.pem", // 클라이언트 인증서 개인 키 경로
CaPath: "/path/to/ca_cert.pem", // CA 인증서 경로
EnableHostVerification: true, // 호스트 이름 검증 활성화
},
Reset: false,
},
)
// scylladb 연결을 사용한 사용자 지정 config 초기화
cluster, _ := gocql.NewCluster("127.0.0.1")
cluster.Keyspace = "fiber"
cluster.Port = 9042
session, _ := cluster.CreateSession()
store := scylladb.New(scylladb.Config{
Session: session,
Keyspace: "fiber",
Table: "fiber_storage",
Reset: false,
})
type Config struct {
// 기존 ScyllaDb 세션을 사용하기 위해 사용자가 제공하는 Session
// Session을 사용하면 Keyspace와 다른 모든 인증 값이 무시됩니다.
//
// 선택 사항. 기본값은 nil
Session *gocql.Session
// Keyspace 이름
//
// 선택 사항. 기본값은 "fiber"
Keyspace string
// 초기 연결 설정을 위한 네트워크 주소 배열
// 필요에 따라 하나 또는 여러 주소를 유연하게 지정할 수 있습니다.
//
// 선택 사항. 기본값은 "127.0.0.1"
Hosts []string
// ScyllaDb 클러스터가 수신 대기하는 포트
//
// 선택 사항. 기본값은 9042
Port int
// ScyllaDb 클러스터의 사용자 이름
//
// 선택 사항. 기본값은 ""
Username string
// ScyllaDb 클러스터의 비밀번호
//
// 선택 사항. 기본값은 ""
Password string
// 테이블 이름
//
// 선택 사항. 기본값은 "fiber_storage"
Table string
// 일관성 수준
//
// 선택 사항. 기본값은 "LOCAL_ONE"
Consistency string
// TLS 사용을 구성하는 SslOpts
//
// 선택 사항. 기본값은 nil
SslOpts *gocql.SslOptions
// 기존 Table의 기존 키를 모두 지우는 Reset
//
// 선택 사항. 기본값은 false
Reset bool
}
// ConfigDefault는 기본 구성입니다.
var ConfigDefault = Config{
Session: nil,
Keyspace: "fiber",
Hosts: []string{"127.0.0.1"},
Username: "",
Password: "",
Port: 9042,
Table: "fiber_storage",
Consistency: "LOCAL_ONE",
SslOpts: nil,
Reset: false,
}