Skip to content

Commit

Permalink
增加集合方法调用
Browse files Browse the repository at this point in the history
  • Loading branch information
daizhenquan committed Feb 9, 2022
1 parent f8d8fd5 commit 15f0785
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 0 deletions.
22 changes: 22 additions & 0 deletions redis/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ func (c *Client) AddPrefix(s string) string {
return c.prefix + s
}

func (c *Client) GetPrefix() string {
return c.prefix
}

//args可以是以下任意组合
// NX
// XX
Expand Down Expand Up @@ -254,6 +258,24 @@ func (c *Client) HDel(key string, fields ...string) (num int64, err error) {
return
}

func (c *Client) SAdd(key string, args ...interface{}) (num int64, err error) {
err = c.Do(radix.FlatCmd(&num, "SADD", c.AddPrefix(key), args...))

return
}

func (c *Client) SDiffStore(key string, args ...interface{}) (num int64, err error) {
err = c.Do(radix.FlatCmd(&num, "SDIFFSTORE", c.AddPrefix(key), args...))

return
}

func (c *Client) SCard(key string) (num int64, err error) {
err = c.Do(radix.Cmd(&num, "SCARD", c.AddPrefix(key)))

return
}

func (c *Client) ZAdd(key string, args ...interface{}) (num int64, err error) {
err = c.Do(radix.FlatCmd(&num, "ZADD", c.AddPrefix(key), args...))

Expand Down
16 changes: 16 additions & 0 deletions redis/func.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ func AddPrefix(s string) string {
return DefaultIns.AddPrefix(s)
}

func GetPrefix() string {
return DefaultIns.GetPrefix()
}

//args可以是以下任意组合
// NX
// XX
Expand Down Expand Up @@ -109,6 +113,18 @@ func HDel(key string, fields ...string) (num int64, err error) {
return DefaultIns.HDel(key, fields...)
}

func SAdd(key string, args ...interface{}) (num int64, err error) {
return DefaultIns.SAdd(key, args...)
}

func SDiffStore(key string, args ...interface{}) (num int64, err error) {
return DefaultIns.SDiffStore(key, args...)
}

func SCard(key string) (num int64, err error) {
return DefaultIns.SCard(key)
}

func ZAdd(key string, args ...interface{}) (num int64, err error) {
return DefaultIns.ZAdd(key, args...)
}
Expand Down
67 changes: 67 additions & 0 deletions redis/func_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -659,3 +659,70 @@ func TestLLen(t *testing.T) {
assert.Greater(b, int64(0))
}
}

func TestSAdd(t *testing.T) {
assert := assert.New(t)
Del("sadd")

i, err := SAdd("sadd", 1, "one")
if assert.Nil(err) {
assert.EqualValues(2, i)
}

i, err = SAdd("sadd", 2, "two", 3, "three")
if assert.Nil(err) {
assert.EqualValues(4, i)
}
}

func TestSDiffStore(t *testing.T) {
assert := assert.New(t)

sAddKey1 := "sadd1"
sAddKey2 := "sadd2"
sDiffStoreKey1 := "sdiff_store"

Del(sAddKey1)
Del(sAddKey2)
Del(sDiffStoreKey1)

i, err := SAdd(sAddKey1, 1, "one")
if assert.Nil(err) {
assert.EqualValues(2, i)
}

i, err = SAdd(sAddKey2, 2, "one", 3, "three")
if assert.Nil(err) {
assert.EqualValues(4, i)
}

i, err = SDiffStore(sDiffStoreKey1, GetPrefix()+sAddKey2, GetPrefix()+sAddKey1)
if assert.Nil(err) {
assert.EqualValues(3, i)
}
}

func TestSCard(t *testing.T) {
assert := assert.New(t)
Del("sadd")

i, err := SAdd("sadd", 1, "one")
if assert.Nil(err) {
assert.EqualValues(2, i)
}

i, err = SCard("sadd")
if assert.Nil(err) {
assert.EqualValues(2, i)
}

i, err = SAdd("sadd", 2, "one", 3, "three")
if assert.Nil(err) {
assert.EqualValues(3, i)
}

i, err = SCard("sadd")
if assert.Nil(err) {
assert.EqualValues(5, i)
}
}

0 comments on commit 15f0785

Please sign in to comment.