Documentation
¶
Index ¶
- Constants
- func NewPubSubDriver(log logger.Logger, key string, cfgPlugin config.Configurer, ...) (pubsub.PubSub, error)
- func NewRedisDriver(log logger.Logger, key string, cfgPlugin config.Configurer) (kv.Storage, error)
- type Config
- type Driver
- func (d *Driver) Clear() error
- func (d *Driver) Delete(keys ...string) error
- func (d *Driver) Get(key string) ([]byte, error)
- func (d *Driver) Has(keys ...string) (map[string]bool, error)
- func (d *Driver) MExpire(items ...*kvv1.Item) error
- func (d *Driver) MGet(keys ...string) (map[string][]byte, error)
- func (d *Driver) Set(items ...*kvv1.Item) error
- func (d *Driver) TTL(keys ...string) (map[string]string, error)
- type Plugin
- func (p *Plugin) Available()
- func (p *Plugin) DefaultClient() redis.UniversalClient
- func (p *Plugin) Init(cfg config.Configurer, log logger.Logger) error
- func (p *Plugin) KVConstruct(key string) (kv.Storage, error)
- func (p *Plugin) Name() string
- func (p *Plugin) PSConstruct(key string) (pubsub.PubSub, error)
- func (p *Plugin) RedisClient(key string) (redis.UniversalClient, error)
- func (p *Plugin) Serve() chan error
- func (p *Plugin) Stop() error
- type PubSubDriver
- func (p *PubSubDriver) Connections(topic string, res map[string]struct{})
- func (p *PubSubDriver) Next() (*pubsub.Message, error)
- func (p *PubSubDriver) Publish(msg *pubsub.Message) error
- func (p *PubSubDriver) PublishAsync(msg *pubsub.Message)
- func (p *PubSubDriver) Subscribe(connectionID string, topics ...string) error
- func (p *PubSubDriver) Unsubscribe(connectionID string, topics ...string) error
- type Redis
Constants ¶
const PluginName = "redis"
Variables ¶
This section is empty.
Functions ¶
func NewPubSubDriver ¶ added in v2.3.1
func NewRedisDriver ¶ added in v2.3.1
Types ¶
type Config ¶
type Config struct {
Addrs []string `mapstructure:"addrs"`
DB int `mapstructure:"db"`
Username string `mapstructure:"username"`
Password string `mapstructure:"password"`
MasterName string `mapstructure:"master_name"`
SentinelPassword string `mapstructure:"sentinel_password"`
RouteByLatency bool `mapstructure:"route_by_latency"`
RouteRandomly bool `mapstructure:"route_randomly"`
MaxRetries int `mapstructure:"max_retries"`
DialTimeout time.Duration `mapstructure:"dial_timeout"`
MinRetryBackoff time.Duration `mapstructure:"min_retry_backoff"`
MaxRetryBackoff time.Duration `mapstructure:"max_retry_backoff"`
PoolSize int `mapstructure:"pool_size"`
MinIdleConns int `mapstructure:"min_idle_conns"`
MaxConnAge time.Duration `mapstructure:"max_conn_age"`
ReadTimeout time.Duration `mapstructure:"read_timeout"`
WriteTimeout time.Duration `mapstructure:"write_timeout"`
PoolTimeout time.Duration `mapstructure:"pool_timeout"`
IdleTimeout time.Duration `mapstructure:"idle_timeout"`
IdleCheckFreq time.Duration `mapstructure:"idle_check_freq"`
ReadOnly bool `mapstructure:"read_only"`
}
func (*Config) InitDefaults ¶
func (s *Config) InitDefaults()
InitDefaults initializing fill config with default values
type Driver ¶ added in v2.3.1
type Driver struct {
// contains filtered or unexported fields
}
func (*Driver) MExpire ¶ added in v2.3.1
MExpire https://redis.io/commands/expire timeout in RFC3339
func (*Driver) MGet ¶ added in v2.3.1
MGet loads content of multiple values (some values might be skipped). https://redis.io/commands/mget Returns slice with the interfaces with values
func (*Driver) Set ¶ added in v2.3.1
Set sets value with the TTL in seconds https://redis.io/commands/set Redis `SET key value [expiration]` command.
Use expiration for `SETEX`-like behavior. Zero expiration means the key has no expiration time.
type Plugin ¶
func (*Plugin) Available ¶ added in v2.2.0
func (p *Plugin) Available()
Available interface implementation
func (*Plugin) DefaultClient ¶ added in v2.3.1
func (p *Plugin) DefaultClient() redis.UniversalClient
func (*Plugin) KVConstruct ¶ added in v2.3.1
KVConstruct provides KV storage implementation over the redis plugin
func (*Plugin) PSConstruct ¶ added in v2.3.1
func (*Plugin) RedisClient ¶ added in v2.3.1
func (p *Plugin) RedisClient(key string) (redis.UniversalClient, error)
RedisClient return a client based on the provided section key key sample: kv.some-section.redis kv.redis redis (root)
type PubSubDriver ¶ added in v2.3.1
func (*PubSubDriver) Connections ¶ added in v2.3.1
func (p *PubSubDriver) Connections(topic string, res map[string]struct{})
func (*PubSubDriver) Next ¶ added in v2.3.1
func (p *PubSubDriver) Next() (*pubsub.Message, error)
Next return next message
func (*PubSubDriver) Publish ¶ added in v2.3.1
func (p *PubSubDriver) Publish(msg *pubsub.Message) error
func (*PubSubDriver) PublishAsync ¶ added in v2.3.1
func (p *PubSubDriver) PublishAsync(msg *pubsub.Message)
func (*PubSubDriver) Subscribe ¶ added in v2.3.1
func (p *PubSubDriver) Subscribe(connectionID string, topics ...string) error
func (*PubSubDriver) Unsubscribe ¶ added in v2.3.1
func (p *PubSubDriver) Unsubscribe(connectionID string, topics ...string) error
type Redis ¶
type Redis interface {
// RedisClient provides universal redis client
RedisClient(key string) (redis.UniversalClient, error)
// DefaultClient provide default redis client based on redis defaults
DefaultClient() redis.UniversalClient
}
Redis in the redis KV plugin interface