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

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())
}