func (c *Client) FlushAll() (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("FLUSHALL"),
	)
	return ret, err
}
/*
Delete all the keys of all the existing databases, not just the currently
selected one. This command never fails.

http://redis.io/commands/flushall
package redis
import (
	"errors"
	"fmt"
	"io"
	"menteslibres.net/gosexy/to"
	"strings"
)
func (c *Client) Append(key string, value interface{}) (int64, error) {
	var ret int64
	err := c.command(
		&ret,
		[]byte("APPEND"),
		[]byte(key),
		to.Bytes(value),
	)
	return ret, err
}
func (c *Client) Auth(password string) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("AUTH"),
		[]byte(password),
	)
	return ret, err
}
func (c *Client) BgRewriteAOF() (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("BGREWRITEAOF"),
	)
	return ret, err
}
func (c *Client) BgSave() (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("BGSAVE"),
	)
	return ret, err
}
func (c *Client) BitCount(key string, params ...int64) (int64, error) {
	var ret int64
	args := make([][]byte, len(params)+2)
	args[0] = []byte("BITCOUNT")
	args[1] = []byte(key)
	for i := range params {
		args[2+i] = to.Bytes(params[i])
	}
	err := c.command(&ret, args...)
	return ret, err
}
func (c *Client) BitOp(op string, dest string, keys ...string) (int64, error) {
	var ret int64
	args := make([][]byte, len(keys)+3)
	args[0] = []byte("BITOP")
	args[1] = []byte(op)
	args[2] = []byte(dest)
	for i := range keys {
		args[3+i] = to.Bytes(keys[i])
	}
	err := c.command(&ret, args...)
	return ret, err
}
func (c *Client) BLPop(timeout uint64, keys ...string) ([]string, error) {
	var ret []string
	args := make([][]byte, len(keys)+2)
	args[0] = []byte("BLPOP")
	i := 0
	for _, key := range keys {
		i++
		args[i] = to.Bytes(key)
	}
	args[1+i] = to.Bytes(timeout)
	err := c.command(&ret, args...)
	return ret, err
}
func (c *Client) BRPop(timeout uint64, keys ...string) ([]string, error) {
	var ret []string
	args := make([][]byte, len(keys)+2)
	args[0] = []byte("BRPOP")
	i := 0
	for _, key := range keys {
		i++
		args[i] = to.Bytes(key)
	}
	args[1+i] = to.Bytes(timeout)
	err := c.command(&ret, args...)
	return ret, err
}
func (c *Client) BRPopLPush(source string, destination string, timeout int64) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("BRPOPLPUSH"),
		[]byte(source),
		[]byte(destination),
		to.Bytes(timeout),
	)
	return ret, err
}
func (c *Client) ClientKill(ip string, port uint) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("CLIENT"),
		[]byte("KILL"),
		to.Bytes(fmt.Sprintf("%s:%d", ip, port)),
	)
	return ret, err
}
func (c *Client) ClientList() ([]string, error) {
	var ret []string
	err := c.command(
		&ret,
		[]byte("CLIENT"),
		[]byte("LIST"),
	)
	return ret, err
}
func (c *Client) ClientGetName() (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("CLIENT"),
		[]byte("GETNAME"),
	)
	return ret, err
}
func (c *Client) ClientSetName(connectionName string) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("CLIENT"),
		[]byte("SETNAME"),
		to.Bytes(connectionName),
	)
	return ret, err
}
func (c *Client) ConfigGet(parameter string) ([]string, error) {
	var ret []string
	err := c.command(
		&ret,
		[]byte("CONFIG"),
		[]byte("GET"),
		[]byte(parameter),
	)
	return ret, err
}
func (c *Client) ConfigSet(parameter string, value interface{}) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("CONFIG"),
		[]byte("SET"),
		[]byte(parameter),
		to.Bytes(value),
	)
	return ret, err
}
func (c *Client) ConfigResetStat() (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("CONFIG"),
		[]byte("RESETSTAT"),
	)
	return ret, err
}
func (c *Client) DbSize() (uint64, error) {
	var ret uint64
	err := c.command(
		&ret,
		[]byte("DBSIZE"),
	)
	return ret, err
}
func (c *Client) DebugObject(key string) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("DEBUG"),
		[]byte("OBJECT"),
		to.Bytes(key),
	)
	return ret, err
}
func (c *Client) DebugSegfault() (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("DEBUG"),
		[]byte("SEGFAULT"),
	)
	return ret, err
}
func (c *Client) Decr(key string) (int64, error) {
	var ret int64
	err := c.command(
		&ret,
		[]byte("DECR"),
		[]byte(key),
	)
	return ret, err
}
func (c *Client) DecrBy(key string, decrement int64) (int64, error) {
	var ret int64
	err := c.command(
		&ret,
		[]byte("DECRBY"),
		[]byte(key),
		to.Bytes(decrement),
	)
	return ret, err
}
func (c *Client) Del(keys ...string) (int64, error) {
	var ret int64
	args := make([][]byte, len(keys)+1)
	args[0] = []byte("DEL")
	for i, key := range keys {
		args[1+i] = to.Bytes(key)
	}
	err := c.command(&ret, args...)
	return ret, err
}
func (c *Client) Discard() (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("DISCARD"),
	)
	return ret, err
}
func (c *Client) Dump(key string) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("DUMP"),
		[]byte(key),
	)
	return ret, err
}
func (c *Client) Echo(message interface{}) (string, error) {
	var ret string
	err := c.command(
		&ret,
		[]byte("ECHO"),
		to.Bytes(message),
	)
	return ret, err
}
func (c *Client) Exec() ([]interface{}, error) {
	var ret []interface{}
	err := c.command(
		&ret,
		[]byte("EXEC"),
	)
	return ret, err
}
func (c *Client) Exists(key string) (bool, error) {
	var ret bool
	err := c.command(
		&ret,
		[]byte("EXISTS"),
		to.Bytes(key),
	)
	return ret, err
}
func (c *Client) Expire(key string, seconds uint64) (bool, error) {
	var ret bool
	err := c.command(
		&ret,
		[]byte("EXPIRE"),
		[]byte(key),
		to.Bytes(seconds),
	)
	return ret, err
}
func (c *Client) ExpireAt(key string, unixTime uint64) (bool, error) {
	var ret bool
	err := c.command(
		&ret,
		[]byte("EXPIREAT"),
		[]byte(key),
		to.Bytes(unixTime),
	)
	return ret, err
}