dbdrivers

package
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetRedisCachePrefix

func GetRedisCachePrefix() string

func InitMongoMasterConn

func InitMongoMasterConn(config MongoConfig) (*mongo.Client, string)

func InitMongoTenantConns

func InitMongoTenantConns(config MongoConfig, master *gorm.DB, tenantAlterDbHostParam, tenantDBPassPhraseKey string) (map[uint64]*mongo.Client, map[uint64]string)

Init the mongo database connection map.

func InitMysqlMasterConn

func InitMysqlMasterConn(config SQLConfig) (*gorm.DB, string)

InitMysqlMasterConn returns mysql master db connection.

func InitMysqlTenantConns

func InitMysqlTenantConns(config SQLConfig, master *gorm.DB, tenantAlterDbHostParam, tenantDBPassPhraseKey string) (map[uint64]*gorm.DB, map[uint64]string)

func InitRedisTenantConns

func InitRedisTenantConns(config RedisConfig, master *gorm.DB, tenantAlterDbHostParam, tenantDBPassPhraseKey string) map[uint64]*RedisDBConn

func RedisDelKey added in v1.1.17

func RedisDelKey(c context.Context, clients *RedisDBConn, keys ...string) error

func RedisExpireKey added in v1.1.28

func RedisExpireKey(c context.Context, clients *RedisDBConn, key string, ttl time.Duration) error

func RedisGetLRange added in v1.1.17

func RedisGetLRange(c context.Context, clients *RedisDBConn, key string, start, stop int64) ([]string, error)

func RedisGetString added in v1.1.17

func RedisGetString(c context.Context, clients *RedisDBConn, key string) (string, error)

func RedisHGet added in v1.1.28

func RedisHGet(c context.Context, clients *RedisDBConn, key string, field string) (string, error)

To get single redis hash key and it's field from redis.

func RedisHSet added in v1.1.28

func RedisHSet(c context.Context, clients *RedisDBConn, key string, field string, data interface{}, ttl time.Duration) error

func RedisHgets added in v1.1.33

func RedisHgets(c context.Context, clients *RedisDBConn, redisKeysWithField map[string]string) (map[string]string, error)

To get one field from multiple redis hashes in one call to redis. Input is a map of keys and the respective field for those keys. Output is a map of keys and the respective values for those keys in redis.

func RedisIncrementValue added in v1.1.17

func RedisIncrementValue(c context.Context, clients *RedisDBConn, key string) error

func RedisIsKeyExists added in v1.1.41

func RedisIsKeyExists(c context.Context, clients *RedisDBConn, key string) (bool, error)

func RedisMGet added in v1.1.17

func RedisMGet(c context.Context, clients *RedisDBConn, keys ...string) ([]interface{}, error)

func RedisRPush added in v1.1.17

func RedisRPush(c context.Context, clients *RedisDBConn, key string, valueList []string) error

func RedisSAdd added in v1.1.17

func RedisSAdd(c context.Context, clients *RedisDBConn, key string, elements interface{}) error

func RedisSIsMember added in v1.1.17

func RedisSIsMember(c context.Context, clients *RedisDBConn, key string, element interface{}) (bool, error)

func RedisSMembers added in v1.1.17

func RedisSMembers(c context.Context, clients *RedisDBConn, key string) ([]string, error)

func RedisSRandMemberN added in v1.1.41

func RedisSRandMemberN(c context.Context, clients *RedisDBConn, key string, count int64) ([]string, error)

func RedisSRem added in v1.1.17

func RedisSRem(c context.Context, clients *RedisDBConn, key string, elements interface{}) error

func RedisSet added in v1.1.17

func RedisSet(c context.Context, clients *RedisDBConn, key string, data interface{}, ttl time.Duration) error

func RedisSetJSON added in v1.1.17

func RedisSetJSON(c context.Context, clients *RedisDBConn, key string, data interface{}, ttl time.Duration) error

Types

type FieldValuePair added in v1.1.33

type FieldValuePair struct {
	Field string `json:"field"`
	Value string `json:"value"`
}

type Key added in v1.4.0

type Key struct {
	// contains filtered or unexported fields
}

A Key represents arbitrary data with ttl.

type KeyFieldPair added in v1.1.33

type KeyFieldPair struct {
	Key   string `json:"key"`
	Field string `json:"field"`
}

type Memory added in v1.4.0

type Memory struct {
	// contains filtered or unexported fields
}

Memory stores arbitrary data with ttl.

func NewMemory added in v1.4.1

func NewMemory() *Memory

New creates a new memory that asynchronously cleans expired entries after the given ttl passes.

func (*Memory) CloseMemory added in v1.4.1

func (mem *Memory) CloseMemory()

Close closes the memory cache and frees up resources.

func (*Memory) DelMemory added in v1.4.1

func (mem *Memory) DelMemory(key string)

Del deletes the key and its value from the memory cache.

func (*Memory) GetMemory added in v1.4.1

func (mem *Memory) GetMemory(k string) (interface{}, bool)

Get gets the value for the given key.

func (*Memory) SetMemory added in v1.4.1

func (mem *Memory) SetMemory(key string, value any, duration time.Duration)

Set sets a value for the given key with an expiration duration. If the duration is 0 or less, it will be stored forever.

type MemoryConfig added in v1.1.42

type MemoryConfig struct {
	On        bool
	DelKeyAPI struct {
		EndPoint        string
		AuthBearerToken string
	}
}

type MongoConfig

type MongoConfig struct {
	Master *struct {
		Database string
		Username string
		Password string
		Host     string
		Port     string
	}
	ConnectTimeout        time.Duration
	MaxConnectionPoolSize uint64
	MaxConnectionLifeTime time.Duration
}

type RedisConfig

type RedisConfig struct {
	Master *struct {
		Database int
		Password string
		Host     string
		Port     string
		Read     []string
	}
	Prefix             string
	Maxretries         int
	PoolSize           int
	MinIdleConnections int
	DialTimeout        time.Duration
	ReadTimeout        time.Duration
	WriteTimeout       time.Duration
	PoolTimeout        time.Duration
}

type RedisDBConn added in v1.1.17

type RedisDBConn struct {
	Host *redis.Client
	Read map[uint64]*redis.Client
	Name int
}

IMPORTANT: This structure is holding any kind of redis connection using a map in bean.go.

func InitRedisMasterConn

func InitRedisMasterConn(config RedisConfig) *RedisDBConn

type SQLConfig

type SQLConfig struct {
	Master *struct {
		Database string
		Username string
		Password string
		Host     string
		Port     string
	}
	MaxIdleConnections        int
	MaxOpenConnections        int
	MaxConnectionLifeTime     time.Duration
	MaxIdleConnectionLifeTime time.Duration
	Debug                     bool
}

type TenantConnections

type TenantConnections struct {
	ID          uint64         `gorm:"primary_key;AUTO_INCREMENT;column:Id"`
	UUID        string         `gorm:"type:CHAR(36);not null;unique;column:Uuid"`
	TenantID    uint64         `gorm:"not null;column:TenantId"`
	Code        string         `gorm:"type:VARCHAR(20);not null;unique;column:Code"`
	Connections datatypes.JSON `gorm:"not null;column:Connections"`
	CreatedBy   uint64         `gorm:"not null;default:0;column:CreatedBy"`
	UpdatedBy   uint64         `gorm:"not null;default:0;column:UpdatedBy"`
	DeletedBy   uint64         `gorm:"default:NULL;column:DeletedBy"`
	CreatedAt   time.Time      `gorm:"type:timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;column:CreatedAt"`
	UpdatedAt   time.Time      `gorm:"type:timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;column:UpdatedAt"`
	DeletedAt   gorm.DeletedAt `gorm:"type:timestamp NULL DEFAULT NULL;column:DeletedAt"`
}

TenantConnections represent a tenant database configuration record in master database

func GetAllTenantCfgs

func GetAllTenantCfgs(db *gorm.DB) []*TenantConnections

GetAllTenantCfgs return all Tenant data from master db.

func (TenantConnections) TableName

func (TenantConnections) TableName() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL