mirror of https://github.com/go-redis/redis.git
add support for SPOP with a count argument (available in REDIS 3.2)
This commit is contained in:
parent
8964a568f3
commit
cd582ed576
|
@ -946,12 +946,20 @@ func (c cmdable) SMove(source, destination string, member interface{}) *BoolCmd
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Redis `SPOP key` command.
|
||||||
func (c cmdable) SPop(key string) *StringCmd {
|
func (c cmdable) SPop(key string) *StringCmd {
|
||||||
cmd := NewStringCmd("spop", key)
|
cmd := NewStringCmd("spop", key)
|
||||||
c.process(cmd)
|
c.process(cmd)
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Redis `SPOP key count` command.
|
||||||
|
func (c cmdable) SPopN(key string, count int64) *StringSliceCmd {
|
||||||
|
cmd := NewStringSliceCmd("spop", key, count)
|
||||||
|
c.process(cmd)
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
// Redis `SRANDMEMBER key` command.
|
// Redis `SRANDMEMBER key` command.
|
||||||
func (c cmdable) SRandMember(key string) *StringCmd {
|
func (c cmdable) SRandMember(key string) *StringCmd {
|
||||||
cmd := NewStringCmd("srandmember", key)
|
cmd := NewStringCmd("srandmember", key)
|
||||||
|
|
|
@ -1790,6 +1790,34 @@ var _ = Describe("Commands", func() {
|
||||||
sMembers := client.SMembers("set")
|
sMembers := client.SMembers("set")
|
||||||
Expect(sMembers.Err()).NotTo(HaveOccurred())
|
Expect(sMembers.Err()).NotTo(HaveOccurred())
|
||||||
Expect(sMembers.Val()).To(HaveLen(2))
|
Expect(sMembers.Val()).To(HaveLen(2))
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should SPopN", func() {
|
||||||
|
sAdd := client.SAdd("set", "one")
|
||||||
|
Expect(sAdd.Err()).NotTo(HaveOccurred())
|
||||||
|
sAdd = client.SAdd("set", "two")
|
||||||
|
Expect(sAdd.Err()).NotTo(HaveOccurred())
|
||||||
|
sAdd = client.SAdd("set", "three")
|
||||||
|
Expect(sAdd.Err()).NotTo(HaveOccurred())
|
||||||
|
sAdd = client.SAdd("set", "four")
|
||||||
|
Expect(sAdd.Err()).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
sPopN := client.SPopN("set", 1)
|
||||||
|
Expect(sPopN.Err()).NotTo(HaveOccurred())
|
||||||
|
Expect(sPopN.Val()).NotTo(Equal([]string{""}))
|
||||||
|
|
||||||
|
sMembers := client.SMembers("set")
|
||||||
|
Expect(sMembers.Err()).NotTo(HaveOccurred())
|
||||||
|
Expect(sMembers.Val()).To(HaveLen(3))
|
||||||
|
|
||||||
|
sPopN = client.SPopN("set", 4)
|
||||||
|
Expect(sPopN.Err()).NotTo(HaveOccurred())
|
||||||
|
Expect(sPopN.Val()).To(HaveLen(3))
|
||||||
|
|
||||||
|
sMembers = client.SMembers("set")
|
||||||
|
Expect(sMembers.Err()).NotTo(HaveOccurred())
|
||||||
|
Expect(sMembers.Val()).To(HaveLen(0))
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should SRandMember and SRandMemberN", func() {
|
It("should SRandMember and SRandMemberN", func() {
|
||||||
|
|
Loading…
Reference in New Issue