forked from mirror/redis
Merge pull request #491 from eyalpost/MultiExec
Support for multi keys in Exists
This commit is contained in:
commit
0cd35295e6
13
commands.go
13
commands.go
|
@ -50,6 +50,8 @@ type Cmdable interface {
|
||||||
Unlink(keys ...string) *IntCmd
|
Unlink(keys ...string) *IntCmd
|
||||||
Dump(key string) *StringCmd
|
Dump(key string) *StringCmd
|
||||||
Exists(key string) *BoolCmd
|
Exists(key string) *BoolCmd
|
||||||
|
// TODO: merge with Exists in v6
|
||||||
|
ExistsMulti(keys ...string) *IntCmd
|
||||||
Expire(key string, expiration time.Duration) *BoolCmd
|
Expire(key string, expiration time.Duration) *BoolCmd
|
||||||
ExpireAt(key string, tm time.Time) *BoolCmd
|
ExpireAt(key string, tm time.Time) *BoolCmd
|
||||||
Keys(pattern string) *StringSliceCmd
|
Keys(pattern string) *StringSliceCmd
|
||||||
|
@ -317,6 +319,17 @@ func (c *cmdable) Exists(key string) *BoolCmd {
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *cmdable) ExistsMulti(keys ...string) *IntCmd {
|
||||||
|
args := make([]interface{}, 1+len(keys))
|
||||||
|
args[0] = "exists"
|
||||||
|
for i, key := range keys {
|
||||||
|
args[1+i] = key
|
||||||
|
}
|
||||||
|
cmd := NewIntCmd(args...)
|
||||||
|
c.process(cmd)
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
func (c *cmdable) Expire(key string, expiration time.Duration) *BoolCmd {
|
func (c *cmdable) Expire(key string, expiration time.Duration) *BoolCmd {
|
||||||
cmd := NewBoolCmd("expire", key, formatSec(expiration))
|
cmd := NewBoolCmd("expire", key, formatSec(expiration))
|
||||||
c.process(cmd)
|
c.process(cmd)
|
||||||
|
|
|
@ -242,6 +242,14 @@ var _ = Describe("Commands", func() {
|
||||||
exists = client.Exists("key2")
|
exists = client.Exists("key2")
|
||||||
Expect(exists.Err()).NotTo(HaveOccurred())
|
Expect(exists.Err()).NotTo(HaveOccurred())
|
||||||
Expect(exists.Val()).To(Equal(false))
|
Expect(exists.Val()).To(Equal(false))
|
||||||
|
|
||||||
|
existsMul := client.ExistsMulti("key1", "key2")
|
||||||
|
Expect(existsMul.Err()).NotTo(HaveOccurred())
|
||||||
|
Expect(existsMul.Val()).To(Equal(int64(1)))
|
||||||
|
|
||||||
|
existsMul = client.ExistsMulti("key1", "key1")
|
||||||
|
Expect(existsMul.Err()).NotTo(HaveOccurred())
|
||||||
|
Expect(existsMul.Val()).To(Equal(int64(2)))
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should Expire", func() {
|
It("should Expire", func() {
|
||||||
|
|
Loading…
Reference in New Issue