github.com/gomodule/redigo/redis (go): Package redis is a client for the Redis database.  The Redigo FAQ (https://github.com/gomodule/redigo/wiki/FAQ) contains more documentation about this package.  The Conn interface is the primary interface for working with Redis. Applications create connections by calling the Dial, DialWithTimeout or NewConn functions. In the future, functions will be added for creating sharded and other types of connections.  The application must call the connection Close method when the application is done with the connection.  The Conn interface has a generic method for executing Redis commands:  The Redis command reference (http://redis.io/commands) lists the available commands. An example of using the Redis APPEND command is:  The Do method converts command arguments to bulk strings for transmission to the server as follows:  Redis command reply types are represented using the following Go types:  Use type assertions or the reply helper functions to convert from interface{} to the specific Go type for the command result.  Connections support pipelining using the Send, Flush and Receive methods.  Send writes the command to the connection's output buffer. Flush flushes the connection's output buffer to the server. Receive reads a single reply from the server. The following example shows a simple pipeline.  The Do method combines the functionality of the Send, Flush and Receive methods. The Do method starts by writing the command and flushing the output buffer. Next, the Do method receives all pending replies including the reply for the command just sent by Do. If any of the received replies is an error, then Do returns the error. If there are no errors, then Do returns the last reply. If the command argument to the Do method is "", then the Do method will flush the output buffer and receive pending replies without sending a command.  Use the Send and Do methods to implement pipelined transactions.  Connections support one concurrent caller to the Receive method and one concurrent caller to the Send and Flush methods. No other concurrency is supported including concurrent calls to the Do and Close methods.  For full concurrent access to Redis, use the thread-safe Pool to get, use and release a connection from within a goroutine. Connections returned from a Pool have the concurrency restrictions described in the previous paragraph.  Use the Send, Flush and Receive methods to implement Pub/Sub subscribers.  The PubSubConn type wraps a Conn with convenience methods for implementing subscribers. The Subscribe, PSubscribe, Unsubscribe and PUnsubscribe methods send and flush a subscription management command. The receive method converts a pushed message to convenient types for use in a type switch.  The Bool, Int, Bytes, String, Strings and Values functions convert a reply to a value of a specific type. To allow convenient wrapping of calls to the connection Do and Receive methods, the functions take a second argument of type error.  If the error is non-nil, then the helper function returns the error. If the error is nil, the function converts the reply to the specified type:  The Scan function converts elements of a array reply to Go types:  Connection methods return error replies from the server as type redis.Error.  Call the connection Err() method to determine if the connection encountered non-recoverable error such as a network error or protocol parsing error. If Err() returns a non-nil value, then the connection is not usable and should be closed.  This example implements ZPOP as described at http://redis.io/topics/transactions using WATCH/MULTI/EXEC and scripting.
Keywords: go|redis