Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
func New ¶
func New(config *RedisConfig, opts ...Option) (*Database, error)
New returns a wrapped Redis object.
func NewFromExistRedisClient ¶
func NewFromExistRedisClient(db RedisClient) *Database
NewFromExistRedisClient returns a wrapped Redis object.
func WrapWithNamespace ¶
WrapWithNamespace returns a wrapped Redis object. The namespace is the prefix that the datastore.
func (*Database) Close ¶
Close flushes any pending data to disk and closes all io accesses to the underlying key-value store.
type OptionFunc ¶
type OptionFunc func(RedisClient)
OptionFunc is a function that configures a RedisClient
func (OptionFunc) Apply ¶
func (f OptionFunc) Apply(engine RedisClient)
Apply is a function that set value to RedisClient
type RedisClient ¶
type RedisClient interface { FlushAll(ctx context.Context) *redis.StatusCmd Ping(ctx context.Context) *redis.StatusCmd Keys(ctx context.Context, pattern string) *redis.StringSliceCmd Exists(ctx context.Context, keys ...string) *redis.IntCmd Eval(ctx context.Context, script string, keys []string, args ...interface{}) *redis.Cmd EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *redis.Cmd ScriptExists(ctx context.Context, scripts ...string) *redis.BoolSliceCmd ScriptLoad(ctx context.Context, script string) *redis.StringCmd Scan(ctx context.Context, cursor uint64, match string, count int64) *redis.ScanCmd Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *redis.StatusCmd SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *redis.BoolCmd Expire(ctx context.Context, key string, expiration time.Duration) *redis.BoolCmd ExpireAt(ctx context.Context, key string, tm time.Time) *redis.BoolCmd Del(ctx context.Context, keys ...string) *redis.IntCmd Get(ctx context.Context, key string) *redis.StringCmd MGet(ctx context.Context, keys ...string) *redis.SliceCmd MSet(ctx context.Context, values ...interface{}) *redis.StatusCmd HDel(ctx context.Context, key string, fields ...string) *redis.IntCmd HExists(ctx context.Context, key, field string) *redis.BoolCmd HGet(ctx context.Context, key, field string) *redis.StringCmd HGetAll(ctx context.Context, key string) *redis.StringStringMapCmd HIncrBy(ctx context.Context, key, field string, incr int64) *redis.IntCmd HIncrByFloat(ctx context.Context, key, field string, incr float64) *redis.FloatCmd HKeys(ctx context.Context, key string) *redis.StringSliceCmd HLen(ctx context.Context, key string) *redis.IntCmd HMGet(ctx context.Context, key string, fields ...string) *redis.SliceCmd HSet(ctx context.Context, key string, values ...interface{}) *redis.IntCmd HSetNX(ctx context.Context, key, field string, value interface{}) *redis.BoolCmd HVals(ctx context.Context, key string) *redis.StringSliceCmd BLPop(ctx context.Context, timeout time.Duration, keys ...string) *redis.StringSliceCmd BRPop(ctx context.Context, timeout time.Duration, keys ...string) *redis.StringSliceCmd BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *redis.StringCmd LIndex(ctx context.Context, key string, index int64) *redis.StringCmd LInsert(ctx context.Context, key, op string, pivot, value interface{}) *redis.IntCmd LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *redis.IntCmd LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *redis.IntCmd LLen(ctx context.Context, key string) *redis.IntCmd LPop(ctx context.Context, key string) *redis.StringCmd LPopCount(ctx context.Context, key string, count int) *redis.StringSliceCmd LPos(ctx context.Context, key string, value string, args redis.LPosArgs) *redis.IntCmd LPosCount(ctx context.Context, key string, value string, count int64, args redis.LPosArgs) *redis.IntSliceCmd LPush(ctx context.Context, key string, values ...interface{}) *redis.IntCmd LPushX(ctx context.Context, key string, values ...interface{}) *redis.IntCmd LRange(ctx context.Context, key string, start, stop int64) *redis.StringSliceCmd LRem(ctx context.Context, key string, count int64, value interface{}) *redis.IntCmd LSet(ctx context.Context, key string, index int64, value interface{}) *redis.StatusCmd LTrim(ctx context.Context, key string, start, stop int64) *redis.StatusCmd RPop(ctx context.Context, key string) *redis.StringCmd RPopCount(ctx context.Context, key string, count int) *redis.StringSliceCmd RPopLPush(ctx context.Context, source, destination string) *redis.StringCmd RPush(ctx context.Context, key string, values ...interface{}) *redis.IntCmd RPushX(ctx context.Context, key string, values ...interface{}) *redis.IntCmd LMove(ctx context.Context, source, destination, srcpos, destpos string) *redis.StringCmd TxPipelined(ctx context.Context, fn func(redis.Pipeliner) error) ([]redis.Cmder, error) TxPipeline() redis.Pipeliner Pipelined(ctx context.Context, fn func(redis.Pipeliner) error) ([]redis.Cmder, error) Pipeline() redis.Pipeliner AddHook(hook redis.Hook) Close() error }
type RedisConfig ¶
type RedisConfig struct { ClusterAddr []string Addr string // Use the specified Username to authenticate the current connection // with one of the connections defined in the ACL list when connecting // to a Redis 6.0 instance, or greater, that is using the Redis ACL system. Username string // Optional password. Must match the password specified in the // requirepass server configuration option (if connecting to a Redis 5.0 instance, or lower), // or the User Password when connecting to a Redis 6.0 instance, or greater, // that is using the Redis ACL system. Password string // The maximum number of retries before giving up. Command is retried // on network errors and MOVED/ASK redirects. // Default is 3 retries. MaxRedirects int // Enables read-only commands on slave nodes. ReadOnly bool // Allows routing read-only commands to the closest master or slave node. // It automatically enables ReadOnly. RouteByLatency bool // Allows routing read-only commands to the random master or slave node. // It automatically enables ReadOnly. RouteRandomly bool // Maximum number of retries before giving up. // Default is 3 retries; -1 (not 0) disables retries. MaxRetries int // Minimum backoff between each retry. // Default is 8 milliseconds; -1 disables backoff. MinRetryBackoff time.Duration // Maximum backoff between each retry. // Default is 512 milliseconds; -1 disables backoff. MaxRetryBackoff time.Duration // Dial timeout for establishing new connections. // Default is 5 seconds. DialTimeout time.Duration // Timeout for socket reads. If reached, commands will fail // with a timeout instead of blocking. Use value -1 for no timeout and 0 for default. // Default is 3 seconds. ReadTimeout time.Duration // Timeout for socket writes. If reached, commands will fail // with a timeout instead of blocking. // Default is ReadTimeout. WriteTimeout time.Duration // Type of connection pool. // true for FIFO pool, false for LIFO pool. // Note that fifo has higher overhead compared to lifo. PoolFIFO bool // Maximum number of socket connections. // Default is 10 connections per every available CPU as reported by runtime.GOMAXPROCS. PoolSize int // Minimum number of idle connections which is useful when establishing // new connection is slow. MinIdleConns int // Connection age at which client retires (closes) the connection. // Default is to not close aged connections. MaxConnAge time.Duration // Amount of time client waits for connection if all connections // are busy before returning an error. // Default is ReadTimeout + 1 second. PoolTimeout time.Duration // Amount of time after which client closes idle connections. // Should be less than server's timeout. // Default is 5 minutes. -1 disables idle timeout check. IdleTimeout time.Duration // Frequency of idle checks made by idle connections reaper. // Default is 1 minute. -1 disables idle connections reaper, // but idle connections are still discarded by the client // if IdleTimeout is set. IdleCheckFrequency time.Duration }
Click to show internal directories.
Click to hide internal directories.