| 267 | } |
| 268 | |
| 269 | func (c *Client) Role() (string, error) { |
| 270 | if reply, err := c.Do("ROLE"); err != nil { |
| 271 | return "", err |
| 272 | } else { |
| 273 | values, err := redigo.Values(reply, nil) |
| 274 | if err != nil { |
| 275 | return "", errors.Trace(err) |
| 276 | } |
| 277 | if len(values) == 0 { |
| 278 | return "", errors.Errorf("invalid response = %v", reply) |
| 279 | } |
| 280 | role, err := redigo.String(values[0], nil) |
| 281 | if err != nil { |
| 282 | return "", errors.Errorf("invalid response[0] = %v", values[0]) |
| 283 | } |
| 284 | return strings.ToUpper(role), nil |
| 285 | } |
| 286 | } |
| 287 | |
| 288 | var ErrClosedPool = errors.New("use of closed redis pool") |
| 289 | |