Documentation ¶
Overview ¶
Package radix implements an asynchronous Redis client.
Client is a structure for accessing a 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) 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 calls a Redis command asynchronously.
func (*Client) AsyncMultiCommand ¶
func (c *Client) AsyncMultiCommand(f func(*MultiCommand)) Future
AsyncMultiCommand calls an asynchronous multi-command.
func (*Client) AsyncTransaction ¶
func (c *Client) AsyncTransaction(f func(*MultiCommand)) Future
AsyncTransaction performs a simple asynchronous transaction.
func (*Client) MultiCommand ¶
func (c *Client) MultiCommand(f func(*MultiCommand)) *Reply
MultiCommand calls a multi-command.
func (*Client) Subscription ¶
func (c *Client) Subscription(msgHdlr func(msg *Message)) (*Subscription, *Error)
Subscription subscribes 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
Transaction performs 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 Error ¶
type Error struct {
// contains filtered or unexported fields
}
type Future ¶
type Future chan *Reply
Future is a channel for fetching the reply of an asynchronous command.
type Message ¶
type Message struct { Type MessageType Channel string Pattern string Subscriptions int Payload string Error error }
Message describes a 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{})
Command queues a command for later execution.
func (*MultiCommand) Flush ¶
func (mc *MultiCommand) Flush() *Reply
Flush sends queued commands to the Redis server for execution and returns 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 ¶
At returns 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 ¶
Bool returns 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 ¶
Elems returns the elements (sub-replies) of a multi reply. It panics, if the reply type is not ReplyMulti.
func (*Reply) Error ¶
Error returns the error value of the reply or nil, if the reply type is not ReplyError.
func (*Reply) ErrorString ¶
ErrorString returns the error string of the error value of the reply or an empty string, if the reply type is not ReplyError.
func (*Reply) Int64 ¶
Int64 returns the reply value as a int64. It panics, if the reply type is not ReplyInteger.
func (*Reply) Len ¶
Len returns the number of elements in a multi reply. Zero is returned when reply type is not ReplyMulti.
func (*Reply) Map ¶
Map returns 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 ¶
Str returns 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 ¶
String returns 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 ¶
StringMap returns 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 closes the Subscription and returns its connection to the connection pool.
func (*Subscription) PSubscribe ¶
func (s *Subscription) PSubscribe(patterns ...string) *Error
PSubscribe subscribes to given patterns or returns an error.
func (*Subscription) PUnsubscribe ¶
func (s *Subscription) PUnsubscribe(patterns ...string) *Error
PUnsubscribe unsubscribes from given patterns or returns an error.
func (*Subscription) Subscribe ¶
func (s *Subscription) Subscribe(channels ...string) *Error
Subscribe subscribes to given channels or returns an error.
func (*Subscription) Unsubscribe ¶
func (s *Subscription) Unsubscribe(channels ...string) *Error
Unsubscribe unsubscribes from given channels or returns an error.