123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- // Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
- //
- // This Source Code Form is subject to the terms of the MIT License.
- // If a copy of the MIT was not distributed with this file,
- // You can obtain one at https://github.com/gogf/gf.
- package gredis
- import (
- "context"
- "github.com/gogf/gf/v2/container/gvar"
- )
- // Adapter is an interface for universal redis operations.
- type Adapter interface {
- AdapterGroup
- // Do send a command to the server and returns the received reply.
- // It uses json.Marshal for struct/slice/map type values before committing them to redis.
- Do(ctx context.Context, command string, args ...interface{}) (*gvar.Var, error)
- // Conn retrieves and returns a connection object for continuous operations.
- // Note that you should call Close function manually if you do not use this connection any further.
- Conn(ctx context.Context) (conn Conn, err error)
- // Close closes current redis client, closes its connection pool and releases all its related resources.
- Close(ctx context.Context) (err error)
- }
- // Conn is an interface of a connection from universal redis client.
- type Conn interface {
- ConnCommand
- // Do send a command to the server and returns the received reply.
- // It uses json.Marshal for struct/slice/map type values before committing them to redis.
- Do(ctx context.Context, command string, args ...interface{}) (result *gvar.Var, err error)
- // Close puts the connection back to connection pool.
- Close(ctx context.Context) (err error)
- }
- // AdapterGroup is an interface managing group operations for redis.
- type AdapterGroup interface {
- GroupGeneric() IGroupGeneric
- GroupHash() IGroupHash
- GroupList() IGroupList
- GroupPubSub() IGroupPubSub
- GroupScript() IGroupScript
- GroupSet() IGroupSet
- GroupSortedSet() IGroupSortedSet
- GroupString() IGroupString
- }
- // ConnCommand is an interface managing some operations bound to certain connection.
- type ConnCommand interface {
- // Subscribe subscribes the client to the specified channels.
- // https://redis.io/commands/subscribe/
- Subscribe(ctx context.Context, channel string, channels ...string) ([]*Subscription, error)
- // PSubscribe subscribes the client to the given patterns.
- //
- // Supported glob-style patterns:
- // - h?llo subscribes to hello, hallo and hxllo
- // - h*llo subscribes to hllo and heeeello
- // - h[ae]llo subscribes to hello and hallo, but not hillo
- //
- // Use \ to escape special characters if you want to match them verbatim.
- //
- // https://redis.io/commands/psubscribe/
- PSubscribe(ctx context.Context, pattern string, patterns ...string) ([]*Subscription, error)
- // ReceiveMessage receives a single message of subscription from the Redis server.
- ReceiveMessage(ctx context.Context) (*Message, error)
- // Receive receives a single reply as gvar.Var from the Redis server.
- Receive(ctx context.Context) (result *gvar.Var, err error)
- }
|