MCPcopy Create free account
hub / github.com/dbProjectRED/redimo.go / SDIFF

Method SDIFF

sets.go:66–94  ·  view source on GitHub ↗
(key string, subtractKeys ...string)

Source from the content-addressed store, hash-verified

64}
65
66func (c Client) SDIFF(key string, subtractKeys ...string) (members []string, err error) {
67 memberSet := make(map[string]struct{})
68 startingList, err := c.SMEMBERS(key)
69
70 if err != nil {
71 return
72 }
73
74 for _, member := range startingList {
75 memberSet[member] = struct{}{}
76 }
77
78 for _, otherKey := range subtractKeys {
79 otherList, err := c.SMEMBERS(otherKey)
80 if err != nil {
81 return members, err
82 }
83
84 for _, member := range otherList {
85 delete(memberSet, member)
86 }
87 }
88
89 for member := range memberSet {
90 members = append(members, member)
91 }
92
93 return
94}
95
96func (c Client) SDIFFSTORE(destinationKey string, sourceKey string, subtractKeys ...string) (count int64, err error) {
97 members, err := c.SDIFF(sourceKey, subtractKeys...)

Callers 2

SDIFFSTOREMethod · 0.95
TestSetOperationsFunction · 0.80

Calls 1

SMEMBERSMethod · 0.95

Tested by 1

TestSetOperationsFunction · 0.64