.remove() complains on nonexistant keys; .discard() doesn't care
.pop() fails on empty set
.clear(), .update() and |= on sets
optimize in-redis operation