1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-26 19:21:03 +03:00

Refactor Set, SetNX and SetXX with expiration.

This commit is contained in:
Vladimir Mihailenco
2015-01-31 11:08:56 +02:00
parent d363cc72c5
commit 2dc61d458a
10 changed files with 182 additions and 89 deletions

View File

@ -338,12 +338,25 @@ func (cmd *BoolCmd) String() string {
func (cmd *BoolCmd) parseReply(rd *bufio.Reader) error {
v, err := parseReply(rd, nil)
// `SET key value NX` returns nil when key already exists.
if err == Nil {
cmd.val = false
return nil
}
if err != nil {
cmd.err = err
return err
}
cmd.val = v.(int64) == 1
return nil
switch vv := v.(type) {
case int64:
cmd.val = vv == 1
return nil
case string:
cmd.val = vv == "OK"
return nil
default:
return fmt.Errorf("got %T, wanted int64 or string")
}
}
//------------------------------------------------------------------------------