You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.3 KiB
92 lines
2.3 KiB
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"github.com/go-redis/redis/v9"
|
|
)
|
|
|
|
func main() {
|
|
|
|
// basic
|
|
//basic()
|
|
|
|
// 集合运算
|
|
op()
|
|
}
|
|
|
|
func op() {
|
|
opt, err := redis.ParseURL("redis://default:yourPassword@192.168.157.135:6379/0?dial_timeout=1")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
client := redis.NewClient(opt)
|
|
ctx := context.Background()
|
|
|
|
client.Del(ctx, "A")
|
|
client.Del(ctx, "A")
|
|
|
|
client.SAdd(ctx, "A", "1", "2")
|
|
client.SAdd(ctx, "B", "2", "3")
|
|
|
|
// 交集
|
|
fmt.Println(client.SInter(ctx, "A", "B").Result())
|
|
// 并集
|
|
fmt.Println(client.SUnion(ctx, "A", "B").Result())
|
|
// 差集
|
|
fmt.Println(client.SDiff(ctx, "A", "B").Result())
|
|
fmt.Println(client.SDiff(ctx, "B", "A").Result())
|
|
|
|
// 运算完存储
|
|
client.SInterStore(ctx, "dest", "A", "B")
|
|
fmt.Println(client.SMembers(ctx, "dest").Result())
|
|
}
|
|
|
|
func basic() {
|
|
opt, err := redis.ParseURL("redis://default:yourPassword@192.168.157.135:6379/0?dial_timeout=1")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
client := redis.NewClient(opt)
|
|
ctx := context.Background()
|
|
|
|
client.Del(ctx, "ips")
|
|
|
|
// 添加
|
|
client.SAdd(ctx, "ips", "129.66.122.123")
|
|
fmt.Println(client.SMembers(ctx, "ips").Result())
|
|
client.SAdd(ctx, "ips", "129.66.122.123", "129.66.122.124", "129.66.122.125")
|
|
// 获取测试
|
|
fmt.Println(client.SMembers(ctx, "ips").Result())
|
|
|
|
// 随机获取一个
|
|
fmt.Println(client.SRandMember(ctx, "ips").Result())
|
|
fmt.Println(client.SRandMember(ctx, "ips").Result())
|
|
fmt.Println(client.SRandMember(ctx, "ips").Result())
|
|
// 多个
|
|
fmt.Println(client.SRandMemberN(ctx, "ips", 2).Result())
|
|
fmt.Println(client.SRandMemberN(ctx, "ips", 2).Result())
|
|
fmt.Println(client.SRandMemberN(ctx, "ips", 2).Result())
|
|
// 获取全部
|
|
fmt.Println(client.SMembers(ctx, "ips").Result())
|
|
|
|
// 取出成员,获取成员,并删除
|
|
//fmt.Println(client.SPop(ctx, "ips").Result())
|
|
//fmt.Println(client.SMembers(ctx, "ips").Result())
|
|
|
|
// 统计成员信息
|
|
fmt.Println(client.SCard(ctx, "ips").Result())
|
|
|
|
// 删除成员
|
|
client.SRem(ctx, "ips", "129.66.122.124")
|
|
fmt.Println(client.SMembers(ctx, "ips").Result())
|
|
|
|
fmt.Println(client.SCard(ctx, "ips").Result())
|
|
|
|
fmt.Println(client.SIsMember(ctx, "ips", "129.66.122.124").Result())
|
|
fmt.Println(client.SIsMember(ctx, "ips", "129.66.122.123").Result())
|
|
fmt.Println(client.SMIsMember(ctx, "ips", "129.66.122.124", "129.66.122.123").Result())
|
|
}
|