| 295 | } |
| 296 | |
| 297 | func (c Client) SUNION(keys ...string) (members []string, err error) { |
| 298 | memberSet := make(map[string]struct{}) |
| 299 | |
| 300 | for _, key := range keys { |
| 301 | setMembers, err := c.SMEMBERS(key) |
| 302 | if err != nil { |
| 303 | return members, err |
| 304 | } |
| 305 | |
| 306 | for _, member := range setMembers { |
| 307 | memberSet[member] = struct{}{} |
| 308 | } |
| 309 | } |
| 310 | |
| 311 | for member := range memberSet { |
| 312 | members = append(members, member) |
| 313 | } |
| 314 | |
| 315 | return |
| 316 | } |
| 317 | |
| 318 | func (c Client) SUNIONSTORE(destinationKey string, sourceKeys ...string) (count int64, err error) { |
| 319 | members, err := c.SUNION(sourceKeys...) |