diff --git a/redis/redis.go b/redis/redis.go index 32c9bed..890d292 100644 --- a/redis/redis.go +++ b/redis/redis.go @@ -80,6 +80,46 @@ func Get(key string) interface{} { return reply } +//集合Set增加元素 +func SetAdd(key string, data ...interface{}) error { + conn := pool.Get() + defer conn.Close() + var err error + for _, d := range data { + _, e := conn.Do("SADD", key, d) + if e != nil { + err = e + break + } + } + return err +} + +//集合Set删除元素 +func SetRem(key string, data ...interface{}) error { + conn := pool.Get() + defer conn.Close() + + var err error + for _, d := range data { + _, e := conn.Do("SREM", key, d) + if e != nil { + err = e + break + } + } + + return err +} + +//集合Set判断是否存在成员member,结果.(int64)==1表示存在 +func SetIsMember(key string, member interface{}) (interface{}, error) { + conn := pool.Get() + defer conn.Close() + + return conn.Do("SISMEMBER", key, member) +} + //设置一个值 func Set(key string, val interface{}, timeout time.Duration) error { data, err := json.Marshal(val) diff --git a/redis/redis_test.go b/redis/redis_test.go new file mode 100644 index 0000000..a5f25a9 --- /dev/null +++ b/redis/redis_test.go @@ -0,0 +1,36 @@ +package redis + +import ( + "fmt" + "testing" +) + +func TestRedis(t *testing.T) { + Init(&Config{ + Host: "192.168.0.254:6379", + Password: "", + Database: 0, + MaxIdle: 3, + MaxActive: 10, + IdleTimeout: 600, + }) + + err := SetAdd("aaa", "aaa", "aa1", "aa2", "aa4", "aa3") + if err != nil { + t.Fatal(err) + } + Expire("aaa", 100) + ret, err := SetIsMember("aaa", "aa1") + if err != nil { + t.Fatal(err) + } + fmt.Println(ret, ret.(int64)) + err = SetRem("aaa", "aa2", "aa3") + if err != nil { + t.Fatal(err) + } + err = Delete("aaa") + if err != nil { + t.Fatal(err) + } +}