Merge pull request #1742 from nigelis/feature/add_smismember_command

Add command SMISMEMBER
This commit is contained in:
Vladimir Mihailenco 2021-04-29 16:08:08 +03:00 committed by GitHub
commit b45fc83959
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View File

@ -200,6 +200,7 @@ type Cmdable interface {
SInter(ctx context.Context, keys ...string) *StringSliceCmd SInter(ctx context.Context, keys ...string) *StringSliceCmd
SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
SMembers(ctx context.Context, key string) *StringSliceCmd SMembers(ctx context.Context, key string) *StringSliceCmd
SMembersMap(ctx context.Context, key string) *StringStructMapCmd SMembersMap(ctx context.Context, key string) *StringStructMapCmd
SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
@ -1508,6 +1509,17 @@ func (c cmdable) SIsMember(ctx context.Context, key string, member interface{})
return cmd return cmd
} }
// Redis `SMISMEMBER key member [member ...]` command.
func (c cmdable) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd {
args := make([]interface{}, 2, 2+len(members))
args[0] = "smismember"
args[1] = key
args = appendArgs(args, members)
cmd := NewBoolSliceCmd(ctx, args...)
_ = c(ctx, cmd)
return cmd
}
// Redis `SMEMBERS key` command output as a slice. // Redis `SMEMBERS key` command output as a slice.
func (c cmdable) SMembers(ctx context.Context, key string) *StringSliceCmd { func (c cmdable) SMembers(ctx context.Context, key string) *StringSliceCmd {
cmd := NewStringSliceCmd(ctx, "smembers", key) cmd := NewStringSliceCmd(ctx, "smembers", key)

View File

@ -2486,6 +2486,15 @@ var _ = Describe("Commands", func() {
Expect(sIsMember.Val()).To(Equal(false)) Expect(sIsMember.Val()).To(Equal(false))
}) })
It("should SMIsMember", func() {
sAdd := client.SAdd(ctx, "set", "one")
Expect(sAdd.Err()).NotTo(HaveOccurred())
sMIsMember := client.SMIsMember(ctx, "set", "one", "two")
Expect(sMIsMember.Err()).NotTo(HaveOccurred())
Expect(sMIsMember.Val()).To(Equal([]bool{true, false}))
})
It("should SMembers", func() { It("should SMembers", func() {
sAdd := client.SAdd(ctx, "set", "Hello") sAdd := client.SAdd(ctx, "set", "Hello")
Expect(sAdd.Err()).NotTo(HaveOccurred()) Expect(sAdd.Err()).NotTo(HaveOccurred())