Documentation ¶
Overview ¶
Package redis implements an asynchronous Redis client.
Simple client for accessing the Redis database. After establishing a connection with NewClient, commands can be executed with Client.Command. Client.Command returns a Reply with different methods for accessing the retrieved values. Client.MultiCommand can be used for sending multiple commands in a single request and Client.Transaction offers a simple way for executing atomic requests. Client.Subscription returns a Subscription that can be used for listening published messages.
Index ¶
- type Client
- func (c *Client) AsyncCommand(cmd string, args ...interface{}) Future
- func (c *Client) AsyncMultiCommand(f func(*MultiCommand)) Future
- func (c *Client) AsyncTransaction(f func(*MultiCommand)) Future
- func (c *Client) Close()
- func (c *Client) Command(cmd string, args ...interface{}) *Reply
- func (c *Client) MultiCommand(f func(*MultiCommand)) *Reply
- func (c *Client) Select(database int)
- func (c *Client) Subscription(msgHdlr func(msg *Message)) (*Subscription, *Error)
- func (c *Client) Transaction(f func(*MultiCommand)) *Reply
- type Configuration
- type Error
- type ErrorFlag
- type Future
- type Message
- type MessageType
- type MultiCommand
- type Reply
- func (r *Reply) At(i int) *Reply
- func (r *Reply) Bool() bool
- func (r *Reply) Bytes() []byte
- func (r *Reply) Elems() []*Reply
- func (r *Reply) Error() *Error
- func (r *Reply) ErrorString() string
- func (r *Reply) Int() int
- func (r *Reply) Int64() int64
- func (r *Reply) Len() int
- func (r *Reply) Map() (map[string]*Reply, error)
- func (r *Reply) Nil() bool
- func (r *Reply) Str() string
- func (r *Reply) String() string
- func (r *Reply) StringMap() (map[string]string, error)
- func (r *Reply) Strings() ([]string, error)
- func (r *Reply) Type() ReplyType
- type ReplyType
- type Subscription
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client manages the access to a database.
func (*Client) AsyncCommand ¶
AsyncCommand performs a Redis command asynchronously.
func (*Client) AsyncMultiCommand ¶
func (c *Client) AsyncMultiCommand(f func(*MultiCommand)) Future
Perform an asynchronous multi command.
func (*Client) AsyncTransaction ¶
func (c *Client) AsyncTransaction(f func(*MultiCommand)) Future
Perform a simple asynchronous transaction.
func (*Client) MultiCommand ¶
func (c *Client) MultiCommand(f func(*MultiCommand)) *Reply
Perform a multi command.
func (*Client) Select ¶
Select changes the database of connections used by the Client to the given database. This is the RECOMMENDED way of changing database as Redis SELECT command changes only the database of one connection of the Client. Database changes occur after the next calls to pullConnection (through Command, etc.)
func (*Client) Subscription ¶
func (c *Client) Subscription(msgHdlr func(msg *Message)) (*Subscription, *Error)
Subscribe to given channels and return a Subscription or an error. The msgHdlr function is called whenever a new message arrives.
func (*Client) Transaction ¶
func (c *Client) Transaction(f func(*MultiCommand)) *Reply
Perform a simple transaction. Simple transaction is a multi command that is wrapped in a MULTI-EXEC block. For complex transactions with WATCH, UNWATCH or DISCARD commands use MultiCommand.
type Configuration ¶
type Configuration struct { Address string Path string Database int Auth string PoolSize int Timeout int NoLoadingRetry bool }
Configuration of a database client.
type Future ¶
type Future chan *Reply
Future is a channel for fetching a reply of an asynchronous command.
type Message ¶
type Message struct { Type MessageType Channel string Pattern string Subscriptions int Payload string Error error }
Pub/sub message
type MessageType ¶
type MessageType int
const ( MessageSubscribe MessageType = iota MessageUnsubscribe MessagePSubscribe MessagePUnsubscribe MessageMessage MessagePMessage MessageError )
type MultiCommand ¶
type MultiCommand struct {
// contains filtered or unexported fields
}
MultiCommand holds data for a Redis multi command.
func (*MultiCommand) Command ¶
func (mc *MultiCommand) Command(cmd string, args ...interface{})
Queue a command for later execution.
func (*MultiCommand) Flush ¶
func (mc *MultiCommand) Flush() *Reply
Send queued commands to the Redis server for execution and return the returned Reply. The Reply associated with the MultiCommand will be reseted.
type Reply ¶
type Reply struct {
// contains filtered or unexported fields
}
Reply holds a Redis reply.
func (*Reply) At ¶
Return a Reply of a multi reply by its index. It panics, if the reply type is not ReplyMulti or if the index is out of range.
func (*Reply) Bool ¶
Return true, if the reply value equals to 1 or "1", otherwise false. It panics, if the reply type is not ReplyInteger or ReplyString.
func (*Reply) Elems ¶
Return the elements (sub-replies) of a multi reply. It panics, if the reply type is not ReplyMulti.
func (*Reply) Error ¶
Return the error value of the reply or nil, if the reply type is not ReplyError.
func (*Reply) ErrorString ¶
Return the error string of the error value of the reply or an empty string, if the reply type is not ReplyError.
func (*Reply) Int64 ¶
Return the reply value as a int64. It panics, if the reply type is not ReplyInteger.
func (*Reply) Len ¶
Return the number of elements in a multi reply. Zero is returned when reply type is not ReplyMulti.
func (*Reply) Map ¶
Return a multi-bulk reply as a map[string]*Reply or an error. The reply elements must be in a "key value key value..."-style order.
func (*Reply) Str ¶
Return the reply value as a string or a nil, if the reply type is ReplyNil. It panics, if the reply type is not ReplyNil, ReplyStatus or ReplyString.
func (*Reply) String ¶
Return a string representation of the reply and its sub-replies. This method is mainly used for debugging. Use method Reply.Str for fetching a string reply.
func (*Reply) StringMap ¶
Return a multi-bulk reply as a map[string]string or an error. The reply elements must be in a "key value key value..."-style order.
type ReplyType ¶
type ReplyType uint8
ReplyType describes the type of reply.
Possbile values are:
ReplyStatus -- status reply ReplyError -- error reply ReplyInteger -- integer reply ReplyNil -- nil reply ReplyString -- string reply ReplyMulti -- multi-bulk or multi-command reply
type Subscription ¶
type Subscription struct {
// contains filtered or unexported fields
}
Subscription is a structure for holding a Redis subscription for multiple channels.
func (*Subscription) Close ¶
func (s *Subscription) Close()
Close the Subscription and return its connection to the connection pool.
func (*Subscription) PSubscribe ¶
func (s *Subscription) PSubscribe(patterns ...string) *Error
Subscribe to given patterns or return an error.
func (*Subscription) PUnsubscribe ¶
func (s *Subscription) PUnsubscribe(patterns ...string) *Error
Unsubscribe from given patterns or return an error.
func (*Subscription) Subscribe ¶
func (s *Subscription) Subscribe(channels ...string) *Error
Subscribe to given channels or return an error.
func (*Subscription) Unsubscribe ¶
func (s *Subscription) Unsubscribe(channels ...string) *Error
Unsubscribe from given channels or return an error.